百分之80新手都不知道,SEO搜索引擎优化【sitemap网站地图 配置】

253 阅读2分钟

请添加图片描述

Sitemap 可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页。最简单的 Sitemap 形式,就是XML 文件,在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间、更改的频率以及相对于网站上其他网址的重要程度为何等),以便搜索引擎可以更加智能地抓取网站。

物料

laravel /php

开始

搜索引擎肯定是希望把开发者提供的服务器直接给他,所以需要有一个统一的格式给搜索引擎的蜘蛛。这样搜索引擎就可以直接读取这个xml文件,不需要爬整个网站的数据。

下面用代码实现:

用一个来自俄罗斯的开发者:Maintainers,应该很多老铁认识他,yii的维护者 在这里插入图片描述

composer require samdark/sitemap

按照这边的例子,很方便的实现网站地图的生成

use samdark\sitemap\Sitemap;
use samdark\sitemap\Index;

// create sitemap
$sitemap = new Sitemap(__DIR__ . '/sitemap.xml');

// add some URLs
$sitemap->addItem('http://example.com/mylink1');
$sitemap->addItem('http://example.com/mylink2', time());
$sitemap->addItem('http://example.com/mylink3', time(), Sitemap::HOURLY);
$sitemap->addItem('http://example.com/mylink4', time(), Sitemap::DAILY, 0.3);

// set sitemap stylesheet (see example-sitemap-stylesheet.xsl)
$sitemap->setStylesheet('http://example.com/css/sitemap.xsl');

// write it
$sitemap->write();

我的网站是一个纸尿裤分析的网站,所以我只需要把所有的纸尿裤的详情页给蜘蛛了 在这里插入图片描述

        $sitemap = new \samdark\sitemap\Sitemap(public_path('/sitemap.xml'));

        $data = GoodsSku::query()
            ->whereNotNull('image_url')
            ->where('unit_amount','>',0)
            ->get();
        foreach ($data as $item){
            /**
             * @var GoodsSku $item
             */
            $sitemap->addItem('https://www.dingdong.site/detail/'.$item->id,strtotime($item->updated_at),\samdark\sitemap\Sitemap::HOURLY);
        }

        $sitemap->setStylesheet('https://www.dingdong.site/sitemap.xml');

        $sitemap->write();

将生生成好的xml文件放在根目录中,定时任务可以每天触发这个程序生成sitemap文件。

这边addItem中几个参数说一下: 第一个: 网站的具体路径 第二个: 是数据更新的时间戳 第三个:说明下网站数据更新的频率 第四个:该数据在网站中的权重(比如我的纸尿裤,帮宝适卖得最好,那就可以把这个权重设高一点)

这时访问 https://www.dingdong.site/sitemap.xml 蜘蛛就能检索到这个文件了,具体能不能爬到呢?这个我也不懂,过几个月再过来看看吧。