feat(seo): integrate @nuxtjs/seo for basic SEO
This commit integrates the `@nuxtjs/seo` module to establish a baseline for search engine optimization. Key changes include: - Installation and configuration of the `@nuxtjs/seo` module. - Definition of default meta tags for title, description, keywords, Open Graph, and Twitter cards. - Addition of a default Open Graph image. - Renaming of `robots.txt` to `_robots.txt` to align with the module's conventions for static file handling.
This commit is contained in:
@@ -3,6 +3,8 @@
|
|||||||
### 🔹 品牌主轴:
|
### 🔹 品牌主轴:
|
||||||
|
|
||||||
> 「一家融合创意与技术的定制开发工作室,专注于网站、软件、游戏与交互体验的全栈实现。」
|
> 「一家融合创意与技术的定制开发工作室,专注于网站、软件、游戏与交互体验的全栈实现。」
|
||||||
|
> A creative technology studio offering **custom development services**, specializing in full-stack solutions for websites, software, games, and interactive experiences.
|
||||||
|
|
||||||
|
|
||||||
### 🔹 品牌关键词:
|
### 🔹 品牌关键词:
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,24 @@
|
|||||||
|
const DEFAULT_SEO = {
|
||||||
|
title: "Tootaio Studio",
|
||||||
|
description:
|
||||||
|
"A creative technology studio offering custom development services, specializing in full-stack solutions for websites, software, games, and interactive experiences.",
|
||||||
|
keywords:
|
||||||
|
"Tootaio, Tootaio Studio, custom development, full-stack solutions, web development, software development, game development, interactive experiences",
|
||||||
|
url: "https://tootaio.com",
|
||||||
|
image: "https://tootaio.com/og-image-1.png",
|
||||||
|
};
|
||||||
|
|
||||||
// https://nuxt.com/docs/api/configuration/nuxt-config
|
// https://nuxt.com/docs/api/configuration/nuxt-config
|
||||||
export default defineNuxtConfig({
|
export default defineNuxtConfig({
|
||||||
compatibilityDate: "2025-07-15",
|
compatibilityDate: "2025-07-15",
|
||||||
devtools: { enabled: true },
|
devtools: { enabled: true },
|
||||||
modules: ["@nuxt/content", "@nuxt/ui", "@nuxt/eslint", "@nuxtjs/i18n"],
|
modules: [
|
||||||
|
"@nuxt/content",
|
||||||
|
"@nuxt/ui",
|
||||||
|
"@nuxt/eslint",
|
||||||
|
"@nuxtjs/i18n",
|
||||||
|
"@nuxtjs/seo",
|
||||||
|
],
|
||||||
css: ["@/assets/css/main.css"],
|
css: ["@/assets/css/main.css"],
|
||||||
i18n: {
|
i18n: {
|
||||||
defaultLocale: "en",
|
defaultLocale: "en",
|
||||||
@@ -21,4 +37,19 @@ export default defineNuxtConfig({
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
seo: {
|
||||||
|
meta: {
|
||||||
|
title: DEFAULT_SEO.title,
|
||||||
|
description: DEFAULT_SEO.description,
|
||||||
|
keywords: DEFAULT_SEO.keywords,
|
||||||
|
ogTitle: DEFAULT_SEO.title,
|
||||||
|
ogDescription: DEFAULT_SEO.description,
|
||||||
|
ogImage: DEFAULT_SEO.image,
|
||||||
|
ogUrl: DEFAULT_SEO.url,
|
||||||
|
twitterCard: "summary_large_image",
|
||||||
|
twitterTitle: DEFAULT_SEO.title,
|
||||||
|
twitterDescription: DEFAULT_SEO.description,
|
||||||
|
twitterImage: DEFAULT_SEO.image,
|
||||||
|
},
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
"@nuxt/eslint": "1.10.0",
|
"@nuxt/eslint": "1.10.0",
|
||||||
"@nuxt/ui": "4.1.0",
|
"@nuxt/ui": "4.1.0",
|
||||||
"@nuxtjs/i18n": "10.2.0",
|
"@nuxtjs/i18n": "10.2.0",
|
||||||
|
"@nuxtjs/seo": "3.2.2",
|
||||||
"better-sqlite3": "^12.4.1",
|
"better-sqlite3": "^12.4.1",
|
||||||
"eslint": "^9.39.0",
|
"eslint": "^9.39.0",
|
||||||
"nuxt": "^4.2.0",
|
"nuxt": "^4.2.0",
|
||||||
|
|||||||
BIN
public/og-image-1.png
Normal file
BIN
public/og-image-1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 MiB |
Reference in New Issue
Block a user