PHP项目XML站点地图如何提交收录

wen PHP项目 31

本文目录导读:

PHP项目XML站点地图如何提交收录

  1. 第一步:生成XML站点地图
  2. 第二步:提交站点地图给搜索引擎
  3. 额外建议:让搜索引擎自动发现Sitemap
  4. 总结流程

在PHP项目中,提交XML站点地图(Sitemap)给搜索引擎收录,主要分为生成Sitemap提交Sitemap两个核心步骤,以下是完整的操作指南。


第一步:生成XML站点地图

你可以选择手动编写、使用PHP库(如 spatie/sitemap)或编写自定义PHP脚本来生成。

方法1:使用 spatie/sitemap 库(推荐)

这是最流行的PHP Sitemap生成库。

  1. 安装(通过Composer):

    composer require spatie/sitemap
  2. 生成Sitemap(示例脚本):

    <?php
    require 'vendor/autoload.php';
    use Spatie\Sitemap\SitemapGenerator;
    // 生成并保存为 sitemap.xml
    SitemapGenerator::create('https://yourdomain.com')
        ->writeToFile(public_path('sitemap.xml')); // 注意路径:public_path() 是 Laravel 函数,原生PHP可用 __DIR__ . '/sitemap.xml'
    echo "Sitemap generated successfully!";
    • 注意:它会自动爬取你网站的所有链接(包括动态页面),但可能需要排除某些路径(如登录页、404页)。
  3. 高级用法(自定义URL、优先级、修改频率):

    use Spatie\Sitemap\Tags\Url;
    $sitemap = \Spatie\Sitemap\Sitemap::create()
        ->add(Url::create('/page1')
            ->setLastModificationDate(\Carbon\Carbon::now())
            ->setChangeFrequency(Url::CHANGE_FREQUENCY_MONTHLY)
            ->setPriority(0.8))
        ->add(Url::create('/page2')
            ->setLastModificationDate(\Carbon\Carbon::yesterday())
            ->setChangeFrequency(Url::CHANGE_FREQUENCY_WEEKLY)
            ->setPriority(0.5));
    $sitemap->writeToFile(public_path('sitemap_custom.xml'));

方法2:手动生成静态XML文件

如果你站点URL很少,可以直接编写一个PHP脚本输出XML内容:

<?php
header('Content-Type: application/xml; charset=utf-8');
$urls = [
    ['loc' => 'https://yourdomain.com/', 'priority' => '1.0', 'changefreq' => 'daily'],
    ['loc' => 'https://yourdomain.com/about', 'priority' => '0.8', 'changefreq' => 'monthly'],
    ['loc' => 'https://yourdomain.com/contact', 'priority' => '0.7', 'changefreq' => 'monthly'],
    // ... 更多页面
];
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
foreach ($urls as $url) {
    echo '<url>';
    echo '<loc>' . htmlspecialchars($url['loc']) . '</loc>';
    echo '<priority>' . $url['priority'] . '</priority>';
    echo '<changefreq>' . $url['changefreq'] . '</changefreq>';
    echo '</url>';
}
echo '</urlset>';
?>

将上述代码保存为 sitemap.php,并配置Nginx/Apache使其以.xml扩展名访问(或直接重写规则)。


第二步:提交站点地图给搜索引擎

提交给Google Search Console

假设你已拥有Google Search Console账户并验证了网站所有权。

  • 登录 Google Search Console
  • 选择你的网站属性。
  • 点击左侧菜单 Sitemaps
  • 在“添加新的站点地图”输入框中,输入你的Sitemap地址(如:https://yourdomain.com/sitemap.xml),点击“提交”。

PHP实现自动提交(可选,使用Google API):

<?php
// 需要安装 google/apiclient
$client = new Google_Client();
$client->setAuthConfig('path/to/service-account-credentials.json');
$client->addScope('https://www.googleapis.com/auth/webmasters');
$service = new Google_Service_Webmasters($client);
$siteUrl = 'https://yourdomain.com';
$sitemapUrl = 'https://yourdomain.com/sitemap.xml';
try {
    $service->sitemaps->submit($siteUrl, $sitemapUrl);
    echo "Sitemap submitted successfully!";
} catch (Exception $e) {
    echo "Error: " . $e->getMessage();
}
?>

注意:Google API方式需要服务账号密钥,更推荐手动提交。

提交给Bing Webmaster Tools

  • 登录 Bing Webmaster Tools
  • 添加你的网站并验证。
  • 在左侧菜单 Sitemaps 下,输入Sitemap URL并提交。

提交给百度搜索资源平台(国内站)

百度对独立Sitemap支持有限,更推荐使用 链接提交数据提交(主动推送) 方式。

  • 链接提交:在百度资源平台找到“链接提交”功能,手动输入URL列表。
  • 数据提交(主动推送):这是百度最重要的收录方式,通过PHP脚本实时推送新链接。
<?php
$urls = [
    'https://yourdomain.com/new-page',
    'https://yourdomain.com/another-page',
];
$api = 'http://data.zz.baidu.com/urls?site=yourdomain.com&token=你的Token';
$ch = curl_init();
$options = [
    CURLOPT_URL => $api,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => implode("\n", $urls),
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['Content-Type: text/plain'],
];
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;
?>

推荐做法:在文章发布或更新时,立即调用上述代码推送URL,比提交Sitemap更高效。


额外建议:让搜索引擎自动发现Sitemap

除了主动提交,你还可以在 robots.txt 中指定Sitemap位置,让搜索引擎爬虫自动发现:

User-agent: *
Allow: /
Sitemap: https://yourdomain.com/sitemap.xml

总结流程

  1. 生成Sitemap:使用PHP库(如spatie/sitemap)或手动生成XML文件,存放在网站根目录(如public/sitemap.xml)。
  2. 提交给搜索引擎
    • Google/Bing:在对应的站长工具后台手动提交Sitemap URL。
    • 百度:推荐使用主动推送接口(http://data.zz.baidu.com/urls),比Sitemap更有效。
  3. 配置robots.txt:添加Sitemap路径,方便爬虫发现。
  4. 定期更新:每次网站内容更新后,重新生成Sitemap并重新提交(Google等会自动定期抓取,但手动提交换取即时性)。

按照以上步骤,你的PHP项目就能顺利通过Sitemap提交给搜索引擎,加速页面收录。

抱歉,评论功能暂时关闭!