Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

在 Laravel 建立並自動更新 sitemap.xml

Posted on 2022 年 2 月 17 日2022 年 2 月 17 日 By 日落 在〈在 Laravel 建立並自動更新 sitemap.xml〉中有 1 則留言

sitemap.xml 應該算是 SEO 中相當重要的一個檔案,告訴搜尋引擎到底網站中有哪些資源是公開瀏覽的,可惜 Laravel framework 並沒有支援這項功能,必須透過其他工具達成。

以下介紹二個目前看到比較欣賞的解決方法。

spatie/laravel-sitemap

spatie/laravel-sitemap 這個工具的作法非常直接,直接用網路爬蟲爬整個網站,並把找到的 URL 轉成 sitemap。

優點是這個方法可以全自動的建立完整的 sitemap,且可以排程背景自動更新。缺點使用爬蟲來掃網站,overhead 實在很大,特別是對大型網站來說更新會是大工程。

另外個人不推薦使用 spatie 的原因,是之前幾次想要使用他們家的工具、extend 都遇到很多設計上的問題。像是 package 綁得很死,容易發生 conflict;設計上不夠仔細,想要透過 interface 擴充功能,卻發現 interface 沒有文件告訴你應該要實作什麼,甚至官方自己開發的程式都在 method 中做了一些無關的動作。

建立 sitemap 專用 Middleware

這個方法是 FDisk 在 StackOverflow 上提出來的,在 route 中自行設定哪一些 route 需要塞進 sitemap 中,並透過 middleware 來建立 sitemap cache data。

這個方法的缺點就是必須自行在 route 中決定是否要套用 sitemap 用 middleware,但是 Laravel 中的 grouping 功能可以簡化這項工作。優點就是只要有使用者瀏覽網頁、爬蟲爬過,就會自動更新 sitemap,不會消耗太多資源也不用排程。

個人目前覺得這個算是相當中庸的解決方案,只要 cache 設定妥當,幾乎不會消耗什麼系統資源。

Tags:Laravel, PHP, 網路架站

文章導覽

Previous Post: Cyberpubk 2077 更新
Next Post: YouTube 影片格式筆記

Comment (1) on “在 Laravel 建立並自動更新 sitemap.xml”

  1. 日落表示:
    2022 年 4 月 16 日14:22

    經 CQD 提醒,一直戳 cache 在大型網站還是會造成瓶頸,以上二種方式可能都不太適合。

    回覆

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.