首页 SEO攻略 正文

基于Next.js的SEO技术实操指南:优化网站流量与影响力

SEO攻略 2025-03-26 21

[id_[id_[id_2[id_[id_[id_11663839[id_1409779879]]28489054]13846897]87[id_1888824500]566][id_7384[id_[id_263395161]69836]8[id_134173328]][id_16857[id_1700[id_160[id_2002233754]68737]4883]4[id_229282910]5]0[id_[id_1960358700]5929095[id_[id_331600918]98031714]]2275]935073030]

很多技术人拥有自己的博客。他们有的记录一些东西,有的则通过贴广告来赚取银子。无论是记录还是贴广告赚银子,都需要有足够的流量。

在本文里,我们会讨论一些基于 next.js 的重要 seo 技术的实际操作。这些操作能帮助你优化网站的 SEO,进而吸引更多的读者,同时扩大网站的影响力和公众影响力。

中是多音字吗_seo中的xml是什么_中是什么意思

[id_243132109]

这里不多说了,你可以翻看这篇地址

什么是 SEO

搜索引擎优化的缩写是 SEO。它的作用是提高网站在谷歌、必应和百度等搜索引擎中的可见度。通过搜索引擎优化,能够提高网站在搜索结果中的排名,进而为网站带来更多流量。

搜索引擎优化是个复杂的过程,需要耗费很多时间和精力。这并非短时间内可以完成,然而倘若你希望给自身的网站带来更多流量,付出努力是有价值的。

Next.js 具备一些内在的功能,能够让您在构建网站时更加轻松,并且能使网站更利于搜索引擎收录。

实践Robots.txt

我们首先要做的事情是在网站的根目录里创建 robots.txt 文件。这个文件能够告知搜索引擎哪些页面是需要被抓取的,哪些页面是不需要被抓取的。

您可以使用以下代码创建 robots.txt 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

App 路由器的文件名为 app/robots.ts
import { MetadataRoute } from "next";

const robots: MetadataRoute.Robots = () => {
[id_812532425] {
rules: {
userAgent: "*",
allow: "/",
disallow: "/private/",
},
sitemap: 此链接为 "https://example.com/sitemap.xml",
};
};

export default robots;

Sitemap.xml

接下来要做的事情是在网站的根目录当中创建一个 sitemap.xml 文件。这个文件能够告知搜索引擎哪些页面是需要被抓取的,哪些页面是不需要被抓取的。

Next.js 能够为你生成 sitemap.xml 文件。你可以借助以下代码来生成 sitemap.xml 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

app 目录下有一个 sitemap.ts 文件(属于 App Router)。

import { allPosts } from "/example.ts";
import { MetadataRoute } from "next";

export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
const blogs = allPosts;
const URL = "https://example.com";

const restUrls = [
{
url: `${URL}/`, // 首页
lastModified: new Date(),
priority: 1.0,
changeFrequency: "weekly",
},
{
url: `${URL}/blogs`,
lastModified: new Date(),
priority: 0.8,
changeFrequency: "daily",
},
{
url: `${URL}/projects`,
lastModified: new Date(),
priority: 0.8,
changeFrequency: "weekly",
},
{
url: `${URL}/skills`,
lastModified: new Date(),
priority: 0.8,
changeFrequency: "weekly",
},
];

const allBlogs = blogs.map(({ slugAsParams, date }) => {
return {
url: `${URL}/blog/${slugAsParams}`,
lastModified: new Date(date),
priority: 0.64,
changeFrequency: "daily",
};
});

return [...restUrls, ...allBlogs];
}

我们能够利用 generateSitemaps 来为每一篇博文生成动态路由。

1
2
3
4
5
6
7
8
9
10
11

// app/sitemap.ts  (App Router)

export async function generateSitemaps() {
return [{ id: "one" }, { id: "two" }, { id: "three" }, { id: "four" }];
}

export default async function sitemap({
id,
}: {
id: string,
}): Promise<MetadataRoute.Sitemap> {}

元标签优化

元标签是用于提供网站元数据的 HTML 标签。搜索引擎凭借它们来明确网站的内容,并且确定在搜索结果里的排名。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

App 的布局文件是 layout.tsx,它属于 App Router 。
// app/page.tsx (App Router)

import { Metadata } from "next";

export async function generateMetadata(): Promise<Metadata> {
return {
metadataBase: new URL("https://example.com"),
title:"Name,
description: "description",
authors: [
{
name: "Site Name",
url: "https://example.com",
},
],
twitter: {
card: "summary_large_image",
creator: "@example",
images: "some-image",
},
robots: "index, follow",
alternates: {
canonical: `https://example.com`,
languages: {
"en-US": "/",
},
},
openGraph: {
type: "website",
url: `https://example.com`,
title: "name",
description: "description",
siteName: "Site Name",
images: [
{
url: "some-image",
},
],
},
assets: "some-image",
keywords: [
"keywords"
],
};
}

我们也可以在 app/page.tsx 这个文件中使用 generateMetadata 函数。

如果想要每个页面都具备单独的元标记,那么在不同的页面里可以运用相同的 generateMetadata 函数。

您可以将 utils 方法提取出来,接着在您的 app/layout.tsx 这个文件里调用该函数,也可以在 app/page.tsx 文件中调用该函数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

// app/layout.tsx (App Router)
// app/page.tsx (App Router)

export async function generateMetadata() {
const metaData = commonMetaData({
name: "",
desc: "",
image: 该链接指向的是 "example.com/images/hero.png" 这个图片。 它是一个特定的图片资源地址。 用于在相关的网页或应用中显示对应的图片。 例如在某些网站的首页或特定页面中,可能会使用这个地址来展示英雄形象的图片。 这个地址对于获取和展示特定的图片起到了关键作用。 它是与该图片相关的唯一标识路径。 可以通过这个地址准确地找到并显示该图片。,
url: "/",
keywords: [],
});
return {
...metaData,
};
}

优化图片和字体

Next.js 自身带有图像组件,此组件可用于对图像进行优化。我极力推荐使用图像组件,而非 img 标签。

Next.js 的 next/font 为我们提供了优化字体的途径。它能够自动对字体(包含自定义字体)进行优化,并且移除外部的网络请求,以此来提升隐私保护水平以及性能。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

// app/layout.tsx (App Router)

import { Roboto } from "next/font/google";

const roboto = Roboto({
weight: "400",
subsets: ["latin"],
display: "swap",
});

export default function RootLayout({
children,
}: {
children: React.ReactNode,
}) {
return (
<html lang="en" className={roboto.className}>
<body>{children}body>
html>
);
}

图片对搜索引擎优化很重要,它能帮助搜索引擎了解网站的内容。字体对搜索引擎优化也很重要,它能帮助搜索引擎了解网站在搜索结果中的排名。

它还有助于通过减少网络请求的数量来提高网站的性能。

优化第三方脚本

第三方脚本在使用它的路由被访问时会被提取。这表明只有在有需求时才会获取脚本,如此一来就减少了网络请求的数量,并且提高了性能。

1
2
3
4
5
6
7
8
9
10
11
12
13
14

// app/layout.tsx (App Router)

import Script from "next/script";

const RootLayout = ({ children }表示 { children: React.ReactNode } 。 即 { children } 就是 { children: React.ReactNode } 所指代的内容 。 它意味着 { children } 具有 { children: React.ReactNode } 的特征或属性 。 可以理解为 { children } 与 { children: React.ReactNode } 是等同的 。 它们在特定的上下文中具有相同的意义和作用 。) => {
return (
<>
{children}
<Script src=该链接为 "https://example.com/script.js" 。 它指向一个特定的脚本文件。 该脚本文件可能包含用于网页或应用程序的代码。 这些代码可以实现各种功能,如交互效果、数据处理等。 它在网页开发或应用程序运行中可能起到重要作用。 例如,它可以控制页面的动态行为或与服务器进行通信。 具体的功能取决于脚本的内容和使用场景。 />

);
};

export default RootLayout;

结论

Next.js 是一个能构建搜索引擎友好型网站的优秀框架。它内置的功能可以让构建搜索引擎优化友好型网站变得更为容易。

@rajreetesh7 对于 Next.js 应用的最佳 SEO 实践,其编号为 6cad24c0fb0e 。

网络营销三板斧是什么,营销三网指的是哪三网
« 上一篇 2025-03-26
建立网络营销体系,建立网络营销渠道
下一篇 » 2025-03-26

文章评论