Bỏ qua để đến nội dung
SEOBlogBot
SEOBlogBotĐăng ký

Sách hướng dẫn vận hành

Kiểm tra liên kết sau khi xuất bản với GitHub Actions hoặc cron thông thường

Bài viết đã trực tuyến và quy trình chưa hoàn tất. Sách hướng dẫn này thêm một bài kiểm tra theo lịch trình, ghi lại dữ liệu liên kết theo từng trang web và chỉ thông báo cho người dùng khi có sự cố.

Nhóm nghiên cứu SEOBlogBot ·

Bàn hội thảo với bánh xe lịch trình, mã thông báo tín dụng và chuông cảnh báo theo phong cách low-poly

Tại sao phải kiểm tra sau khi xuất bản

Một cổng kiểm tra thấy bản nháp. Một bài kiểm tra thấy những gì trang web thực tế đang làm. Các plugin có thể sửa đổi liên kết, biên tập viên dán các liên kết chuyển tiếp liên kết thương mại điện tử lên các URL sạch, và việc di chuyển CDN có thể biến một máy chủ thành một máy chủ khác. Không có những điều này tồn tại ở giai đoạn bản nháp, đó là lý do tại sao một lần chạy sau khi xuất bản là nơi đầu tiên nó có thể xuất hiện.

Một bài kiểm tra hữu ích được thiết kế để nhàm chán. Nó chạy theo lịch trình, ghi một dòng và giữ im lặng trừ khi có ngoại lệ xảy ra. Im lặng là mục tiêu. Một tháng nhật ký im lặng có nghĩa là công việc đang hoạt động, không phải là nó đang nhàn rỗi.

Không có API kiểm tra backlink chính thức nào của Google dành cho sử dụng chung, đó là lý do tại sao các nhóm gọi đến chỉ mục liên kết của bên thứ ba. Đó là bộ thu thập dữ liệu của chúng tôi. Search Console hiển thị cách nhìn của Google về các liên kết của chính bạn, và bài kiểm tra bổ sung cho nó thay vì thay thế nó.

Nơi công việc chạy

Ghi lại trình kích hoạt. Ba thiết lập bao phủ hầu hết các nhóm, và mỗi thiết lập đều chạy các lệnh gọi giống nhau. Nhật ký quan trọng hơn trình kích hoạt, vì ngày, URL và số tín dụng sử dụng phải xuất hiện ở đó mỗi lần.

GitHub Actions cho một kho lưu trữ

Nếu trang web được xây dựng từ một kho lưu trữ, quy trình làm việc theo lịch trình sẽ thêm ít ma sát nhất. Công việc sống bên cạnh mã, và khóa nằm trong kho lưu trữ bí mật của kho lưu trữ. Tệp quy trình làm việc ở bên dưới là những gì tối thiểu bạn cần. Giữ nó trong kho lưu trữ, được xem xét như bất kỳ mã nào khác, và ghim các phiên bản hành động mà bạn dựa vào.

Máy chủ thông thường với cron

Các nhóm đã giữ một máy chủ cho bản dựng của họ có thể lên lịch các lệnh tương tự ở đó. Một công cụ như n8n có thể chạy chúng thông qua một bước Thực thi Lệnh, hoặc một dòng crontab có thể chạy chúng trực tiếp. Dù bằng cách nào, công việc nên chạy dưới dạng người dùng có thể đọc khóa và không có gì khác.

Webhook từ CMS của bạn

Một số thiết lập CMS kích hoạt webhook khi bài viết được phát hành, và sự kiện đó có thể bắt đầu bài kiểm tra. Kiểm tra sau đó chạy ngay khi bài viết công khai. Hãy giữ một lần chạy theo lịch trình, vì một webhook bị bỏ sót sẽ khiến một bài viết không được kiểm tra.

Sách hướng dẫn vận hành, theo thứ tự

01

Kích hoạt khi xuất bản và lại sau 30 ngày

Một lần chạy ngay sau khi bài viết trực tuyến kiểm tra các máy chủ gửi đi. Một lần chạy thứ hai một tháng sau đọc refdomains cho trang web của bạn, vì chỉ mục làm mới khoảng hàng tháng và việc đọc sớm hơn sẽ không hiển thị bất kỳ dữ liệu mới nào.

02

Gọi tổng quan miễn phí trước

action=overview trả về các số liệu chính của trang web mà không mất phí. Lưu chúng làm hàng cơ sở cho lần chạy này, với ngày bên cạnh nó.

03

Chỉ lấy danh sách trả phí khi có thay đổi

Nếu tổng quan khác với tháng trước, gọi refdomains (2 tín dụng) và anchors (2 tín dụng) và so sánh với các danh sách đã lưu.

04

Ghi một dòng vào nhật ký

Ngày, URL bài viết, các lệnh gọi đã thực hiện, số dư _credits. Một tệp CSV đơn giản được commit vào một kho lưu trữ riêng tư là đủ.

05

Chỉ cảnh báo khi có ngoại lệ

HTTP 401, HTTP 402, kết quả trống cho một trang web có hàng tháng trước, hoặc giảm xếp hạng 10 điểm trở lên.

Cân đồng thau cân bằng một cây lớn chống lại hai cây nhỏ giống hệt nhau

Những trang web nào cần kiểm tra

Bắt đầu với tên miền chứa bài viết. Sau đó chạy cùng bài kiểm tra đối với hai hoặc ba đối thủ mà bạn muốn so sánh. Sử dụng compare cho việc đó. Nó chấp nhận tối đa 20 tên miền với 1 tín dụng, vì vậy việc kiểm tra đối thủ tốn gần như không đáng kể.

Bỏ qua phần đuôi dài. Mỗi trang web bổ sung thêm nhiễu vào nhật ký mà một người phải đọc. Việc so sánh của hai mươi tên miền không liên quan cho bạn rất ít thông tin về chính bạn.

Giữ khóa ra khỏi nhật ký

Một công việc theo lịch trình đọc khóa của nó trong mỗi lần chạy, vì vậy nó không cần bước đăng nhập. Điều duy nhất cần bảo vệ là chính khóa. Nó có ba lỗ hổng rõ ràng: một commit, một môi trường được in ra và một URL mà proxy ghi lại. Đóng mỗi lỗ hổng đó.

Sử dụng kho lưu trữ bí mật, không phải tệp trong kho lưu trữ

Dán khóa vào kho lưu trữ bí mật của nhà cung cấp CI của bạn, hoặc vào một tệp môi trường mà chỉ người dùng của công việc có thể đọc. Không bao giờ commit nó. Một bước in môi trường của nó sẽ in nó, vì vậy đừng viết một bước như vậy.

Gửi khóa trong tiêu đề

Tiêu đề Bearer giữ khóa ra khỏi hầu hết các nhật ký truy cập, vì URL được ghi lại nhưng tiêu đề thường thì không. Hình thức chuỗi truy vấn cũng hoạt động, nhưng nó để lại một bản sao trong mọi proxy thấy yêu cầu.

Hạn chế ai có thể đọc kho lưu trữ

Cấp quyền đọc cho những người duy trì công việc và không ai khác. Xem xét danh sách đó khi công việc chuyển giao.

Một khóa mà nhiều người có thể đọc là một khóa sẽ kết thúc bằng việc dán vào cửa sổ trò chuyện vào một ngày nào đó.

Xác minh phản hồi trước khi ghi lại

Một phản hồi đến chưa phải là một phản hồi bạn có thể sử dụng. Sử dụng một thứ tự mỗi lần. Chỉ ghi những gì vượt qua, và ghi lại phần còn lại. Một phản hồi bị từ chối là bằng chứng, và người tiếp theo gỡ lỗi công việc sẽ muốn xem nó.

Kiểm tra trạng thái và ok trước

Đọc mã trạng thái HTTP, sau đó trường ok trong thân. Một mã 200 với ok được đặt là false vẫn là một lệnh gọi thất bại, và nhật ký nên nói như vậy.

Phân tích JSON trước bất kỳ ghi nào

Xác nhận thân là JSON hợp lệ trước khi bạn giải nén, phân tích hoặc nối bất kỳ thứ gì. Một tải xuống bị cắt ngắn có thể xảy ra trên một trình chạy không ổn định. Một tệp bị hỏng ghi vào nhật ký trông có vẻ ổn cho đến khi ai đó mở nó.

Coi danh sách trống như một câu hỏi

Một kết quả trống cho một trang web có hàng tháng trước là một câu hỏi, không phải là một sự thật. Kiểm tra chính tả của tên miền, bao gồm cả www. ở đầu, trước khi ai đó nhận được cảnh báo.

Một tệp quy trình làm việc để bắt đầu

Lưu khóa dưới dạng bí mật kho lưu trữ có tên SBB_KEY. Biểu thức cron chạy vào ngày đầu tiên của mỗi tháng lúc 06:00 UTC.

yaml
name: monthly-link-audit
on:
  schedule:
    - cron: '0 6 1 * *'
  workflow_dispatch: {}
jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Overview (free)
        run: |
          curl -fsS "https://seoblogbot.com/api.php?action=overview&q=example.com" > overview.json
      - name: Refdomains (2 credits)
        env:
          SBB_KEY: ${{ secrets.SBB_KEY }}
        run: |
          curl -fsS -H "Authorization: Bearer $SBB_KEY" \
            "https://seoblogbot.com/api.php?action=refdomains&q=example.com&per=500" > refdomains.json
      - name: Log credits
        run: jq -r '._credits' refdomains.json >> credits.log

Những gì sai và nhật ký hiển thị gì

Triệu chứngNguyên nhân có thể xảy raBước đầu tiên
HTTP 401Bí mật bị thiếu hoặc đã xoay vòngTạo lại bí mật, chạy workflow_dispatch
HTTP 402Hết tín dụngNạp tiền từ trang tài khoản, chạy lại
Hàng trống cho một trang web đã biếtĐang làm mới chỉ mục hoặc lỗi chính tả trong tên miềnThử lại sau một ngày; kiểm tra www.
Xếp hạng thay đổi vài điểmLàm mới hàng thángKhông làm gì; xem xu hướng
Xếp hạng giảm 10+Mất liên kết hoặc thay đổi lớn trong làm mớiKéo refdomains và so sánh
Cron trên máy chủ thông thường

Các lệnh tương tự chạy từ một dòng crontab. Giữ khóa trong một tệp môi trường mà chỉ người dùng của công việc có thể đọc, và ghi vào một tệp bạn xoay vòng.

Cân đá với một quả nặng và một đĩa trống trong ánh sáng pastel

Chi phí và nơi đọc chúng

Một bài kiểm tra hàng tháng cho một trang web tốn 4 tín dụng khi bạn kéo cả hai danh sách, đó là $0.0004. Lệnh gọi tổng quan là miễn phí. Một tháng không có thay đổi do đó không tốn gì ngoài nó.

Nếu nhóm của bạn xuất bản mười bài viết mỗi ngày trên nhiều trang web, bài kiểm tra vẫn là một công việc hàng tháng cho mỗi trang web, không phải một công việc cho mỗi bài viết. Điều đó giữ cho số lượng nhỏ và nhật ký dễ đọc.

Khi bạn thêm một trang web thứ hai, sao chép công việc thay vì mở rộng nó. Một quy trình làm việc trên mỗi tên miền giữ nhật ký theo trang web và khiến việc truy ngược lại lỗi dễ dàng hơn với chủ sở hữu của nó.

Chi phí lớn hơn thường là phút của nhà cung cấp CI của bạn, không phải tín dụng của chúng tôi. Bảng chi phí đặt cả hai dòng cạnh nhau, vì vậy bạn có thể quyết định dòng nào cần điều chỉnh trước.

Yêu cầu lần chạy đầu tiên in _credits. Tin tưởng phản hồi hơn bất kỳ bảng nào. Hướng dẫn cổng bao gồm kiểm tra phía bản nháp đến trước cái này.

Lịch trình GitHub chạy trong UTC, vì vậy thời gian bắt đầu 06:00 rơi vào giờ địa phương khác nhau cho mỗi nhóm. Ghi múi giờ vào sách hướng dẫn vận hành để không ai ngạc nhiên bởi nhật ký.

Câu hỏi về việc chạy bài kiểm tra

Hầu hết các câu hỏi này đến từ các nhóm vừa lên lịch công việc lần đầu tiên.

Đây có phải là API kiểm tra backlink google không?

Đây là một bài kiểm tra được xây dựng dựa trên API của chúng tôi, không phải sản phẩm của Google. Google không công bố API backlink chung, vì vậy các số liệu đến từ bộ thu thập dữ liệu và chỉ mục riêng của chúng tôi.

Bài kiểm tra có thể chạy với mỗi bản dựng không?

Nó có thể, nhưng việc kéo refdomains hàng tháng không cần chạy trên mỗi bản dựng. Chạy tổng quan miễn phí trên mỗi lần xuất bản, và các lần kéo trả phí một lần một tháng.

Tôi vẫn cần bài kiểm tra nếu tôi có một cổng không?

Có, nếu bạn xuất bản thông qua các plugin hoặc CDN. Cổng thấy bản nháp của bạn, và bài kiểm tra thấy trang web trực tiếp. Mỗi cái bắt các lỗi mà cái kia không thể thấy.

Nếu công việc thất bại giữa chừng thì sao?

Ghi kết quả của từng bước vào tệp riêng của nó, vì một lần kéo thất bại sẽ giữ tổng quan nguyên vẹn. Chạy lại từ bước thất bại thay vì từ đầu, điều này tránh phải trả tiền cho cùng một lần kéo hai lần.

Tôi nên ngân sách bao nhiêu tín dụng cho mỗi trang web?

Ngân sách 4 tín dụng cho mỗi trang web mỗi tháng cho hai lần kéo trả phí, cộng với bất kỳ chi phí nào cổng của bạn chi tiêu cho các bản nháp. Tổng quan miễn phí không thêm gì vào con số đó, và nhật ký cho bạn tổng số thực tế.

Hai lần chạy cách nhau vài ngày không đồng ý với nhau?

Chỉ mục làm mới khoảng một lần một tháng, vì những thay đổi hàng ngày thường là nhiễu. So sánh ảnh chụp nhanh tháng này với tháng trước trước khi bạn mở sự cố.

Phê duyệt sách hướng dẫn vận hành

  • Bí mật tồn tại và quy trình làm việc đã chạy một lần bằng tay.
  • Tệp nhật ký ghi lại ngày, URL, các lệnh gọi và _credits.
  • Ai đó sở hữu kênh cảnh báo.
  • Công việc coi dữ liệu hàng tháng là hàng tháng.
  • Một lỗi của chính bài kiểm tra sẽ gọi điện cho một người.