Gmeek icon indicating copy to clipboard operation
Gmeek copied to clipboard

提一些 SEO 优化相关问题

Open dishao123 opened this issue 1 year ago • 13 comments

  1. 增加外部链接rel标签(可以设置白名单)
  2. 增加外部链接跳转页(可以设置白名单和自由开关,以及自定义页面内容)
  3. 生成站点的sitemap.xml文件

dishao123 avatar Jul 20 '24 02:07 dishao123

1和2我不是很专业,能否详细说明一下是哪些外部链接?或者举个例子?

3我觉得是不是就是目前的rss.xml文件?

Meekdai avatar Jul 20 '24 12:07 Meekdai

rss文件是专门用于订阅获取内容更新的,通常只包含最新的几个链接

而站点地图sitemap.xml,包含了整个网站的所有重要页面的链接,并还可以含有页面的相对优先级、最后更新时间和更新频率,更针对搜索引擎的抓取和优化。

不过现在的搜索引擎似乎也支持拿rss文件当站点地图用? 我把rss地址提交到必应和谷歌,可以正常识别抓取。

ghost avatar Jul 20 '24 13:07 ghost

@molikai-work 对的,目前的rss.xml文件已经包含整个网站的所有重要页面的链接。我就是把rss.xml提交给google的。

Meekdai avatar Jul 20 '24 13:07 Meekdai

1应该是说在构建博客文章时自动识别链接元素,然后构建html时自动添加属性设置,例如 在编辑器中添加链接,

[https://example.com/](https://example.com/)

然后构建html时把这个链接的a标签加上属性rel="external nofollow",来告诉搜索引擎:“这个链接是外部链接,不是我的,请不要给他权重,他怎么样也跟我没关系”

<a href="https://example.com/" rel="external nofollow">https://example.com/</a>

这样确实可以优化搜索引擎的抓取,至于设置白名单,应该是说可以设置特定的链接,然后当文中出现的链接在设置中时,不添加rel="external nofollow"属性。

ghost avatar Jul 20 '24 13:07 ghost

2的外部链接跳转页,应该就是在各个平台常见的提示你:“这个链接不是他们的,不归他们管,是否跳转页面”,例如某乎的链接跳转提示。

举个例子写一个js读取链接的参数内容,假如说这个页面是example.html,那就是

https://example.com/example.html/?url=https://example.net/

使用js自动读取参数中url的内容得到链接,然后设置提示,给按钮是否跳转。

然后在构建html时自动再编辑文章中出现的url链接, 例如,

https://example.net/

然后自动在链接前面加上

https://example.com/example.html/?url=

这样用户最终跳转的链接就是

https://example.com/example.html/?url=https://example.net/

这样使得用户会先跳转到我们的这个页面,然后用前面说的js读取参数信息, 然后页面提示是否跳转,给你按钮。

ghost avatar Jul 20 '24 13:07 ghost

简单的一个示例(

{66FC29A0-BA17-460D-9342-B69460908153}

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <script>
        function getQueryParameter(name) {
            const urlParams = new URLSearchParams(window.location.search);
            return urlParams.get(name);
        }

        function confirmRedirect() {
            const targetUrl = getQueryParameter('url');
            if (targetUrl) {
                const userConfirmed = confirm('您即将跳转到以下网址:' + targetUrl + ',是否继续?');
                if (userConfirmed) {
                    window.location.href = targetUrl;
                } else {
                    alert('您取消了跳转。');
                }
            } else {
                alert('未找到要跳转的URL参数。');
            }
        }

        window.onload = confirmRedirect;
    </script>
</head>
<body>
</body>
</html>

ghost avatar Jul 20 '24 14:07 ghost

@molikai-work 感谢大佬补充相关细节

@Meekdai 具体的楼上已经说的很详细了

dishao123 avatar Jul 20 '24 15:07 dishao123

@molikai-work @dishao123 了解了,这些功能都可以通过插件的方式来实现,我有空写一个试试。

Meekdai avatar Jul 24 '24 07:07 Meekdai

其实仔细想想第一条可以通过Gmeek插入html元素的方法实现? 不用md语法的链接,而是手动用已经处理好的a标签元素。😂

ghost avatar Jul 24 '24 07:07 ghost

@molikai-work 确实可以,就是如果链接多了不方便。

而且第二条我好像没有在浏览一些独立博客的时候遇到这种功能,只有一些大平台的有这个跳转页。

Meekdai avatar Jul 24 '24 07:07 Meekdai

@eekdai 给你看个例子https://www.skyqian.com/这个网站就使用了,我说的跳转页

dishao123 avatar Jul 25 '24 14:07 dishao123

其实仔细想想第一条可以通过Gmeek插入html元素的方法实现? 不用md语法的链接,而是手动用已经处理好的a标签元素。😂

今天本来想看看先简单实现添加rel="nofollow"功能的,测试后发现其实这里不需要使用Gmeek-html的方式来实现。直接使用a标签就可以了。https://blog.meekdai.com/post/code-server-pei-zhi-HTTPS.html

参考链接:[centos搭建code-server及配置HTTPS、登录页自定义](https://juejin.cn/post/7230335974085525541)

修改为如下:

参考链接:<a href="https://juejin.cn/post/7230335974085525541" rel="nofollow">centos搭建code-server及配置HTTPS、登录页自定义</a>

因为之前测试过target="_blank"会被github自动删除,所以以为a标签不能添加其他内容,今天突然发现rel="nofollow"是可以的,这样就要方便不少了,而且在issue中的页面也有这个属性。

Meekdai avatar Aug 07 '24 01:08 Meekdai

其实实在不行可以用Gmeek插入html元素的方法( Gmeek-html<a href="https://example.com/" rel="external nofollow noopener noreferrer" target="_blank">Example测试</a>

这个应该是最万能的。 image

ghost avatar Aug 07 '24 03:08 ghost

@molikai-work 对的,目前的rss.xml文件已经包含整个网站的所有重要页面的链接。我就是把rss.xml提交给google的。

@Meekdai 但是 Google 没法读取我的,请问你是怎么提交的呢?

Image

1837634311 avatar Nov 23 '25 08:11 1837634311