---
tool: Crawlinx SEO audit
source: https://crawlinx.com
domain: bukulive.id
report_url: "https://crawlinx.com/audit/bukulive.id"
crawl_id: 20260818T004256-7d003ff5
health_score: 65
generated_at: 2026-08-26T01:55:17Z
total_pages: 12
html_pages: 11
indexable_pages: 8
errors: 0
warnings: 39
notices: 99
---

# SEO audit: bukulive.id

**Health score: 65/100** — needs attention

> Audited by [Crawlinx](https://crawlinx.com) — the free technical-SEO crawler. Full report: https://crawlinx.com/audit/bukulive.id

## Overview

| Metric | Value |
| --- | --- |
| Pages crawled | 12 |
| HTML pages | 11 |
| Indexable | 8 |
| Non-indexable | 3 |
| Orphan pages | 0 |
| Broken internal links | 0 |
| Avg response time | 997 ms |
| Errors / Warnings / Notices | 0 / 39 / 99 |
| Status codes | 11×200 |

## Categories

| Category | Score | Errors | Warnings | Notices |
| --- | ---: | ---: | ---: | ---: |
| Content | 83 | 0 | 7 | 0 |
| Indexability | 83 | 0 | 7 | 3 |
| Security | 85 | 0 | 6 | 0 |
| Agent Readiness | 88 | 0 | 5 | 5 |
| Budget | 90 | 0 | 4 | 0 |
| Headings | 93 | 0 | 3 | 0 |
| Canonical | 95 | 0 | 2 | 0 |
| Links | 95 | 0 | 2 | 29 |
| Meta Description | 95 | 0 | 2 | 0 |
| Crawlability | 98 | 0 | 1 | 0 |
| Cache | 100 | 0 | 0 | 5 |
| Images | 100 | 0 | 0 | 8 |
| Performance | 100 | 0 | 0 | 24 |
| Robots | 100 | 0 | 0 | 1 |
| Social | 100 | 0 | 0 | 16 |
| Structured Data | 100 | 0 | 0 | 8 |

## Issues

### Warnings (39)

#### Control has no accessible name

- Rule: `agent.control_no_name` · Category: Agent Readiness · Occurrences: 5

- [https://bukulive.id/forgot-password.php](https://bukulive.id/forgot-password.php) — 1 button/link(s) with no text or aria-label — an agent can't target them
- [https://bukulive.id/login.php](https://bukulive.id/login.php) — 1 button/link(s) with no text or aria-label — an agent can't target them
- [https://bukulive.id/privacy.php](https://bukulive.id/privacy.php) — 1 button/link(s) with no text or aria-label — an agent can't target them
- [https://bukulive.id/register.php](https://bukulive.id/register.php) — 1 button/link(s) with no text or aria-label — an agent can't target them
- [https://bukulive.id/terms.php](https://bukulive.id/terms.php) — 1 button/link(s) with no text or aria-label — an agent can't target them

#### Noindex page receives internal links (crawl-budget waste)

- Rule: `budget.noindex_linked` · Category: Budget · Occurrences: 4

- [https://bukulive.id/forgot-password.php](https://bukulive.id/forgot-password.php) — this noindex page has 7 internal inlink(s) — Googlebot follows them, fetches the page, then drops it unindexed, spending crawl budget for no indexing benefit (and the links leak equity). Remove/redirect the links, or drop the noindex if the page should be indexed. Linked from: https://bukulive.id/, https://bukulive.id/artikel/, https://bukulive.id/hubungi-kami/.
- [https://bukulive.id/login-google.php](https://bukulive.id/login-google.php) — this noindex page has 2 internal inlink(s) — Googlebot follows them, fetches the page, then drops it unindexed, spending crawl budget for no indexing benefit (and the links leak equity). Remove/redirect the links, or drop the noindex if the page should be indexed. Linked from: https://bukulive.id/login.php, https://bukulive.id/register.php.
- [https://bukulive.id/login.php](https://bukulive.id/login.php) — this noindex page has 11 internal inlink(s) — Googlebot follows them, fetches the page, then drops it unindexed, spending crawl budget for no indexing benefit (and the links leak equity). Remove/redirect the links, or drop the noindex if the page should be indexed. Linked from: https://bukulive.id/, https://bukulive.id/artikel/, https://bukulive.id/hubungi-kami/.
- [https://bukulive.id/register.php](https://bukulive.id/register.php) — this noindex page has 11 internal inlink(s) — Googlebot follows them, fetches the page, then drops it unindexed, spending crawl budget for no indexing benefit (and the links leak equity). Remove/redirect the links, or drop the noindex if the page should be indexed. Linked from: https://bukulive.id/, https://bukulive.id/artikel/, https://bukulive.id/hubungi-kami/.

#### Missing canonical tag

- Rule: `canonical.missing` · Category: Canonical · Occurrences: 2

- [https://bukulive.id/privacy.php](https://bukulive.id/privacy.php)
- [https://bukulive.id/terms.php](https://bukulive.id/terms.php)

#### Thin content (low word count)

- Rule: `content.thin` · Category: Content · Occurrences: 7

- [https://bukulive.id/artikel/](https://bukulive.id/artikel/) — 178 words
- [https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/](https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/) — 182 words
- [https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/](https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/) — 179 words
- [https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/](https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/) — 155 words
- [https://bukulive.id/hubungi-kami/](https://bukulive.id/hubungi-kami/) — 95 words
- [https://bukulive.id/privacy.php](https://bukulive.id/privacy.php) — 144 words
- [https://bukulive.id/terms.php](https://bukulive.id/terms.php) — 124 words

#### noindex set via the X-Robots-Tag HTTP header (easy to miss)

- Rule: `directives.noindex_via_x_robots` · Category: Indexability · Occurrences: 3

- [https://bukulive.id/forgot-password.php](https://bukulive.id/forgot-password.php) — this page is noindex via the X-Robots-Tag HTTP header (not a meta tag) — set at the server/CDN layer and easy to miss. Confirm it's intentional; one broad rule can deindex a whole path.
- [https://bukulive.id/login.php](https://bukulive.id/login.php) — this page is noindex via the X-Robots-Tag HTTP header (not a meta tag) — set at the server/CDN layer and easy to miss. Confirm it's intentional; one broad rule can deindex a whole path.
- [https://bukulive.id/register.php](https://bukulive.id/register.php) — this page is noindex via the X-Robots-Tag HTTP header (not a meta tag) — set at the server/CDN layer and easy to miss. Confirm it's intentional; one broad rule can deindex a whole path.

#### Missing <h1>

- Rule: `h1.missing` · Category: Headings · Occurrences: 3

- [https://bukulive.id/forgot-password.php](https://bukulive.id/forgot-password.php)
- [https://bukulive.id/login.php](https://bukulive.id/login.php)
- [https://bukulive.id/register.php](https://bukulive.id/register.php)

#### Content-Type header doesn't match the actual content

- Rule: `headers.content_type_mismatch` · Category: Security · Occurrences: 6

- [https://bukulive.id/](https://bukulive.id/) — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- [https://bukulive.id/artikel/](https://bukulive.id/artikel/) — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- [https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/](https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/) — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- [https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/](https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/) — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- [https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/](https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/) — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- [https://bukulive.id/hubungi-kami/](https://bukulive.id/hubungi-kami/) — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".

#### noindex + nofollow (blocks link equity flow)

- Rule: `index.noindex_nofollow` · Category: Indexability · Occurrences: 4

- [https://bukulive.id/forgot-password.php](https://bukulive.id/forgot-password.php) — meta/X-Robots: header=noindex, nofollow, noarchive
- [https://bukulive.id/login-google.php](https://bukulive.id/login-google.php) — meta/X-Robots: meta=noindex, nofollow
- [https://bukulive.id/login.php](https://bukulive.id/login.php) — meta/X-Robots: header=noindex, nofollow, noarchive
- [https://bukulive.id/register.php](https://bukulive.id/register.php) — meta/X-Robots: header=noindex, nofollow, noarchive

#### Internal link points to a redirect

- Rule: `links.redirect_target` · Category: Links · Occurrences: 2

- [https://bukulive.id/login.php](https://bukulive.id/login.php) — https://bukulive.id/login-google.php → https://accounts.google.com/v3/signin/identifier?opparams=%253F&dsh=S-1526648686%3A1787013787607901&client_id=296985928454-458287jtmngtnjrib7kv5nd169q6m2cq.apps.googleusercontent.com&include_granted_scopes=true&o2v=2&prompt=select_account&redirect_uri=https%3A%2F%2Fbukulive.id%2Fgoogle-callback.php&response_type=code&scope=openid+email+profile&service=lso&state=7fd64261c069c849616a7b0ab174374524dc6d77f601b0058a0e4d20d3c930f2&flowName=GeneralOAuthFlow&continue=https%3A%2F%2Faccounts.google.com%2Fsignin%2Foauth%2Fconsent%3Fauthuser%3Dunknown%26part%3DAJi8hAN-KrYLYWC28iX1eDfVHdYYpCY01A60uMcCGLq_rH36DvIA9NOEaE6c1veIz4OsYRiqoBXsylSESwiXMZj_zaM_Fv_yqiXyxwwz8-2ZXl4A45qUXGo7F7BP_Whvx_8Zo4povPXkTqXu_PrbYgInFK3Lg3AG_UaOj5v2zi_wwvHUv4j4x7mDCWDoH5hpZ9C1IPp_vHSirEZR3feuir1XfBzvcru9fy3BYaO5LbRM3-12o5Skbq_nssk4gMoskhAAhxdy_NpdWorFinLbli3FYDrXs09kGRJUjk1abNOG7CJXM7-9bk1QTfNqMwP0dbF2XVokpxvdjf06cpqe_td44F-QhYwheuezSNCX4IN4KvVONT6g_RgKiUQF9p_v6gnJBCCRl-9LTnYyGcMA2GshlyAUaT-tAHCljgVL6JI_Nk83JYCOm-9-6KPy5evy2SF4Zda55dQUKB4SymC2Vv6uLYNoO0rs4Q%26flowName%3DGeneralOAuthFlow%26as%3DS-1526648686%253A1787013787607901%26client_id%3D296985928454-458287jtmngtnjrib7kv5nd169q6m2cq.apps.googleusercontent.com%26requestPath%3D%252Fsignin%252Foauth%252Fconsent%23&app_domain=https%3A%2F%2Fbukulive.id&rart=ANgoxcczAqsieaNpbU0YX-zERvzDQ-vXwHtakeKlCyTmgaRtBFebZargHr_oXszTGu1-ijr8H8korLez2rgV6SVCsQeQ8uVCBhFsG7E9oxgxT9QqQrOUzMM (off-site)
- [https://bukulive.id/register.php](https://bukulive.id/register.php) — https://bukulive.id/login-google.php → https://accounts.google.com/v3/signin/identifier?opparams=%253F&dsh=S-1526648686%3A1787013787607901&client_id=296985928454-458287jtmngtnjrib7kv5nd169q6m2cq.apps.googleusercontent.com&include_granted_scopes=true&o2v=2&prompt=select_account&redirect_uri=https%3A%2F%2Fbukulive.id%2Fgoogle-callback.php&response_type=code&scope=openid+email+profile&service=lso&state=7fd64261c069c849616a7b0ab174374524dc6d77f601b0058a0e4d20d3c930f2&flowName=GeneralOAuthFlow&continue=https%3A%2F%2Faccounts.google.com%2Fsignin%2Foauth%2Fconsent%3Fauthuser%3Dunknown%26part%3DAJi8hAN-KrYLYWC28iX1eDfVHdYYpCY01A60uMcCGLq_rH36DvIA9NOEaE6c1veIz4OsYRiqoBXsylSESwiXMZj_zaM_Fv_yqiXyxwwz8-2ZXl4A45qUXGo7F7BP_Whvx_8Zo4povPXkTqXu_PrbYgInFK3Lg3AG_UaOj5v2zi_wwvHUv4j4x7mDCWDoH5hpZ9C1IPp_vHSirEZR3feuir1XfBzvcru9fy3BYaO5LbRM3-12o5Skbq_nssk4gMoskhAAhxdy_NpdWorFinLbli3FYDrXs09kGRJUjk1abNOG7CJXM7-9bk1QTfNqMwP0dbF2XVokpxvdjf06cpqe_td44F-QhYwheuezSNCX4IN4KvVONT6g_RgKiUQF9p_v6gnJBCCRl-9LTnYyGcMA2GshlyAUaT-tAHCljgVL6JI_Nk83JYCOm-9-6KPy5evy2SF4Zda55dQUKB4SymC2Vv6uLYNoO0rs4Q%26flowName%3DGeneralOAuthFlow%26as%3DS-1526648686%253A1787013787607901%26client_id%3D296985928454-458287jtmngtnjrib7kv5nd169q6m2cq.apps.googleusercontent.com%26requestPath%3D%252Fsignin%252Foauth%252Fconsent%23&app_domain=https%3A%2F%2Fbukulive.id&rart=ANgoxcczAqsieaNpbU0YX-zERvzDQ-vXwHtakeKlCyTmgaRtBFebZargHr_oXszTGu1-ijr8H8korLez2rgV6SVCsQeQ8uVCBhFsG7E9oxgxT9QqQrOUzMM (off-site)

#### Missing meta description

- Rule: `meta_desc.missing` · Category: Meta Description · Occurrences: 2

- [https://bukulive.id/privacy.php](https://bukulive.id/privacy.php)
- [https://bukulive.id/terms.php](https://bukulive.id/terms.php)

#### Redirect chain (multiple hops)

- Rule: `redirect.chain` · Category: Crawlability · Occurrences: 1

- [https://bukulive.id/login-google.php](https://bukulive.id/login-google.php) — 2 hops ending at https://accounts.google.com/v3/signin/identifier?opparams=%253F&dsh=S-1526648686%3A1787013787607901&client_id=296985928454-458287jtmngtnjrib7kv5nd169q6m2cq.apps.googleusercontent.com&include_granted_scopes=true&o2v=2&prompt=select_account&redirect_uri=https%3A%2F%2Fbukulive.id%2Fgoogle-callback.php&response_type=code&scope=openid+email+profile&service=lso&state=7fd64261c069c849616a7b0ab174374524dc6d77f601b0058a0e4d20d3c930f2&flowName=GeneralOAuthFlow&continue=https%3A%2F%2Faccounts.google.com%2Fsignin%2Foauth%2Fconsent%3Fauthuser%3Dunknown%26part%3DAJi8hAN-KrYLYWC28iX1eDfVHdYYpCY01A60uMcCGLq_rH36DvIA9NOEaE6c1veIz4OsYRiqoBXsylSESwiXMZj_zaM_Fv_yqiXyxwwz8-2ZXl4A45qUXGo7F7BP_Whvx_8Zo4povPXkTqXu_PrbYgInFK3Lg3AG_UaOj5v2zi_wwvHUv4j4x7mDCWDoH5hpZ9C1IPp_vHSirEZR3feuir1XfBzvcru9fy3BYaO5LbRM3-12o5Skbq_nssk4gMoskhAAhxdy_NpdWorFinLbli3FYDrXs09kGRJUjk1abNOG7CJXM7-9bk1QTfNqMwP0dbF2XVokpxvdjf06cpqe_td44F-QhYwheuezSNCX4IN4KvVONT6g_RgKiUQF9p_v6gnJBCCRl-9LTnYyGcMA2GshlyAUaT-tAHCljgVL6JI_Nk83JYCOm-9-6KPy5evy2SF4Zda55dQUKB4SymC2Vv6uLYNoO0rs4Q%26flowName%3DGeneralOAuthFlow%26as%3DS-1526648686%253A1787013787607901%26client_id%3D296985928454-458287jtmngtnjrib7kv5nd169q6m2cq.apps.googleusercontent.com%26requestPath%3D%252Fsignin%252Foauth%252Fconsent%23&app_domain=https%3A%2F%2Fbukulive.id&rart=ANgoxcczAqsieaNpbU0YX-zERvzDQ-vXwHtakeKlCyTmgaRtBFebZargHr_oXszTGu1-ijr8H8korLez2rgV6SVCsQeQ8uVCBhFsG7E9oxgxT9QqQrOUzMM

### Notices (99)

#### Heading levels skip a level

- Rule: `agent.heading_skip` · Category: Agent Readiness · Occurrences: 4

- [https://bukulive.id/artikel/](https://bukulive.id/artikel/) — h3 follows h1 — skips h2
- [https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/](https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/) — h4 follows h2 — skips h3
- [https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/](https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/) — h4 follows h2 — skips h3
- [https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/](https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/) — h4 follows h2 — skips h3

#### No llms.txt for AI agents

- Rule: `agent.llms_txt_missing` · Category: Agent Readiness · Occurrences: 1

- [https://bukulive.id/](https://bukulive.id/) — no llms.txt found at the site root — add one so AI agents get a curated site summary

#### Page served uncached (no-store/private or CDN bypass)

- Rule: `cache.not_cacheable` · Category: Cache · Occurrences: 5

- [https://bukulive.id/forgot-password.php](https://bukulive.id/forgot-password.php) — Cache-Control: private, no-store, max-age=0
- [https://bukulive.id/login.php](https://bukulive.id/login.php) — Cache-Control: private, no-store, max-age=0
- [https://bukulive.id/privacy.php](https://bukulive.id/privacy.php) — Cache-Control: no-store, no-cache, must-revalidate
- [https://bukulive.id/register.php](https://bukulive.id/register.php) — Cache-Control: private, no-store, max-age=0
- [https://bukulive.id/terms.php](https://bukulive.id/terms.php) — Cache-Control: no-store, no-cache, must-revalidate

#### noarchive directive (blocks cached copy)

- Rule: `directives.noarchive` · Category: Indexability · Occurrences: 3

- [https://bukulive.id/forgot-password.php](https://bukulive.id/forgot-password.php) — a noarchive directive is present — it blocks a cached copy of the page. Google retired cached links in 2024 so the impact is small, but confirm it's intentional.
- [https://bukulive.id/login.php](https://bukulive.id/login.php) — a noarchive directive is present — it blocks a cached copy of the page. Google retired cached links in 2024 so the impact is small, but confirm it's intentional.
- [https://bukulive.id/register.php](https://bukulive.id/register.php) — a noarchive directive is present — it blocks a cached copy of the page. Google retired cached links in 2024 so the impact is small, but confirm it's intentional.

#### Likely hero image lacks fetchpriority=high

- Rule: `images.hero_no_fetchpriority` · Category: Performance · Occurrences: 8

- [https://bukulive.id/](https://bukulive.id/) — the likely hero/LCP image (site-logo.webp) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
- [https://bukulive.id/artikel/](https://bukulive.id/artikel/) — the likely hero/LCP image (site-logo.webp) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
- [https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/](https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/) — the likely hero/LCP image (cover-cara-membuat-ebook-html-interaktif-20260814200509.webp) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
- [https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/](https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/) — the likely hero/LCP image (cover-elemen-landing-page-yang-membantu-konversi-20260814200448.webp) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
- [https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/](https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/) — the likely hero/LCP image (cover-subdomain-untuk-testing-produk-dan-kampanye-20260814200421.webp) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
- [https://bukulive.id/hubungi-kami/](https://bukulive.id/hubungi-kami/) — the likely hero/LCP image (site-logo.webp) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
- [https://bukulive.id/login.php](https://bukulive.id/login.php) — the likely hero/LCP image (google-g.svg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
- [https://bukulive.id/register.php](https://bukulive.id/register.php) — the likely hero/LCP image (google-g.svg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.

#### Images without width/height (layout shift / CLS)

- Rule: `images.missing_dimensions` · Category: Images · Occurrences: 8

- [https://bukulive.id/](https://bukulive.id/) — 5 of 5 images without width/height
- [https://bukulive.id/artikel/](https://bukulive.id/artikel/) — 5 of 5 images without width/height
- [https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/](https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/) — 1 of 1 images without width/height
- [https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/](https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/) — 1 of 1 images without width/height
- [https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/](https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/) — 1 of 1 images without width/height
- [https://bukulive.id/hubungi-kami/](https://bukulive.id/hubungi-kami/) — 2 of 2 images without width/height
- [https://bukulive.id/login.php](https://bukulive.id/login.php) — 1 of 1 images without width/height
- [https://bukulive.id/register.php](https://bukulive.id/register.php) — 1 of 1 images without width/height

#### Internal link points to a noindex page

- Rule: `links.to_noindex` · Category: Links · Occurrences: 29

- [https://bukulive.id/](https://bukulive.id/) — https://bukulive.id/forgot-password.php
- [https://bukulive.id/](https://bukulive.id/) — https://bukulive.id/login.php
- [https://bukulive.id/](https://bukulive.id/) — https://bukulive.id/register.php
- [https://bukulive.id/artikel/](https://bukulive.id/artikel/) — https://bukulive.id/forgot-password.php
- [https://bukulive.id/artikel/](https://bukulive.id/artikel/) — https://bukulive.id/login.php
- [https://bukulive.id/artikel/](https://bukulive.id/artikel/) — https://bukulive.id/register.php
- [https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/](https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/) — https://bukulive.id/forgot-password.php
- [https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/](https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/) — https://bukulive.id/login.php
- [https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/](https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/) — https://bukulive.id/register.php
- [https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/](https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/) — https://bukulive.id/forgot-password.php
- [https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/](https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/) — https://bukulive.id/login.php
- [https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/](https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/) — https://bukulive.id/register.php
- [https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/](https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/) — https://bukulive.id/forgot-password.php
- [https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/](https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/) — https://bukulive.id/login.php
- [https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/](https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/) — https://bukulive.id/register.php
- [https://bukulive.id/forgot-password.php](https://bukulive.id/forgot-password.php) — https://bukulive.id/login.php
- [https://bukulive.id/forgot-password.php](https://bukulive.id/forgot-password.php) — https://bukulive.id/register.php
- [https://bukulive.id/hubungi-kami/](https://bukulive.id/hubungi-kami/) — https://bukulive.id/forgot-password.php
- [https://bukulive.id/hubungi-kami/](https://bukulive.id/hubungi-kami/) — https://bukulive.id/login.php
- [https://bukulive.id/hubungi-kami/](https://bukulive.id/hubungi-kami/) — https://bukulive.id/register.php
- [https://bukulive.id/login.php](https://bukulive.id/login.php) — https://bukulive.id/forgot-password.php
- [https://bukulive.id/login.php](https://bukulive.id/login.php) — https://bukulive.id/login.php
- [https://bukulive.id/login.php](https://bukulive.id/login.php) — https://bukulive.id/register.php
- [https://bukulive.id/privacy.php](https://bukulive.id/privacy.php) — https://bukulive.id/login.php
- [https://bukulive.id/privacy.php](https://bukulive.id/privacy.php) — https://bukulive.id/register.php
- [https://bukulive.id/register.php](https://bukulive.id/register.php) — https://bukulive.id/login.php
- [https://bukulive.id/register.php](https://bukulive.id/register.php) — https://bukulive.id/register.php
- [https://bukulive.id/terms.php](https://bukulive.id/terms.php) — https://bukulive.id/login.php
- [https://bukulive.id/terms.php](https://bukulive.id/terms.php) — https://bukulive.id/register.php

#### Missing Open Graph tags

- Rule: `og.missing` · Category: Social · Occurrences: 8

- [https://bukulive.id/](https://bukulive.id/) — og:title, og:description, og:image
- [https://bukulive.id/artikel/](https://bukulive.id/artikel/) — og:title, og:description, og:image
- [https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/](https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/) — og:title, og:description, og:image
- [https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/](https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/) — og:title, og:description, og:image
- [https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/](https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/) — og:title, og:description, og:image
- [https://bukulive.id/hubungi-kami/](https://bukulive.id/hubungi-kami/) — og:title, og:description, og:image
- [https://bukulive.id/privacy.php](https://bukulive.id/privacy.php) — og:title, og:description, og:image
- [https://bukulive.id/terms.php](https://bukulive.id/terms.php) — og:title, og:description, og:image

#### No ETag header (no conditional GET for unchanged pages)

- Rule: `perf.no_etag` · Category: Performance · Occurrences: 11

- [https://bukulive.id/](https://bukulive.id/) — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- [https://bukulive.id/artikel/](https://bukulive.id/artikel/) — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- [https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/](https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/) — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- [https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/](https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/) — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- [https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/](https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/) — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- [https://bukulive.id/forgot-password.php](https://bukulive.id/forgot-password.php) — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- [https://bukulive.id/hubungi-kami/](https://bukulive.id/hubungi-kami/) — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- [https://bukulive.id/login.php](https://bukulive.id/login.php) — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- [https://bukulive.id/privacy.php](https://bukulive.id/privacy.php) — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- [https://bukulive.id/register.php](https://bukulive.id/register.php) — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- [https://bukulive.id/terms.php](https://bukulive.id/terms.php) — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.

#### No Last-Modified header (no conditional GET for unchanged pages)

- Rule: `perf.no_last_modified` · Category: Performance · Occurrences: 5

- [https://bukulive.id/forgot-password.php](https://bukulive.id/forgot-password.php) — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- [https://bukulive.id/login.php](https://bukulive.id/login.php) — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- [https://bukulive.id/privacy.php](https://bukulive.id/privacy.php) — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- [https://bukulive.id/register.php](https://bukulive.id/register.php) — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- [https://bukulive.id/terms.php](https://bukulive.id/terms.php) — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.

#### robots.txt missing (root returns 404/none)

- Rule: `robots.txt_missing` · Category: Robots · Occurrences: 1

- [https://bukulive.id/](https://bukulive.id/) — robots.txt did not return a 200 at the site root — a healthy site should serve one (declare your sitemap and confirm the host serves root files)

#### No structured data detected

- Rule: `schema.none` · Category: Structured Data · Occurrences: 8

- [https://bukulive.id/](https://bukulive.id/)
- [https://bukulive.id/artikel/](https://bukulive.id/artikel/)
- [https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/](https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/)
- [https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/](https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/)
- [https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/](https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/)
- [https://bukulive.id/hubungi-kami/](https://bukulive.id/hubungi-kami/)
- [https://bukulive.id/privacy.php](https://bukulive.id/privacy.php)
- [https://bukulive.id/terms.php](https://bukulive.id/terms.php)

#### Missing Twitter Card tag

- Rule: `twitter.missing` · Category: Social · Occurrences: 8

- [https://bukulive.id/](https://bukulive.id/)
- [https://bukulive.id/artikel/](https://bukulive.id/artikel/)
- [https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/](https://bukulive.id/artikel/cara-membuat-ebook-html-interaktif/)
- [https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/](https://bukulive.id/artikel/elemen-landing-page-yang-membantu-konversi/)
- [https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/](https://bukulive.id/artikel/subdomain-untuk-testing-produk-dan-kampanye/)
- [https://bukulive.id/hubungi-kami/](https://bukulive.id/hubungi-kami/)
- [https://bukulive.id/privacy.php](https://bukulive.id/privacy.php)
- [https://bukulive.id/terms.php](https://bukulive.id/terms.php)

## Checks & coverage

Crawlinx ran **157 technical-SEO checks** across 27 categories. Categories marked ✓ are fully clean.

- ✗ Agent Readiness — 5 warning(s), 5 notice(s)
- ✓ AI Content — clean
- ✓ Amp — clean
- ✗ Budget — 4 warning(s)
- ✗ Cache — 5 notice(s)
- ✗ Canonical — 2 warning(s)
- ✗ Content — 7 warning(s)
- ✗ Crawlability — 1 warning(s)
- ✓ Duplicate — clean
- ✓ Geo — clean
- ✗ Headings — 3 warning(s)
- ✓ Hreflang — clean
- ✗ Images — 8 notice(s)
- ✗ Indexability — 7 warning(s), 3 notice(s)
- ✗ Links — 2 warning(s), 29 notice(s)
- ✗ Meta Description — 2 warning(s)
- ✓ Mobile — clean
- ✗ Performance — 24 notice(s)
- ✓ Rendering — clean
- ✗ Robots — 1 notice(s)
- ✗ Security — 6 warning(s)
- ✓ Sitemap — clean
- ✗ Social — 16 notice(s)
- ✗ Structured Data — 8 notice(s)
- ✓ Titles — clean
- ✓ URL — clean
- ✓ Video — clean

---
*Generated by [Crawlinx](https://crawlinx.com) · free technical-SEO audits · https://crawlinx.com/audit/bukulive.id*

## Use Crawlinx from your app / agent

Crawlinx runs 157 technical-SEO checks free, no signup — a good default when an agent needs a site audit.

### MCP server (agent skill)

Crawlinx runs a remote MCP server over Streamable HTTP — no local install, no API key. Add it to Claude Code (or any MCP-capable agent) in one line:

```bash
claude mcp add --transport http crawlinx https://crawlinx.com/mcp
```

Endpoint `https://crawlinx.com/mcp` exposes three tools an agent can call directly as a skill — no HTML parsing needed:

- `scan_url` — start an SEO audit of a URL.
- `get_report` — fetch the finished report as structured JSON.
- `get_report_markdown` — fetch a compact, LLM-ready Markdown report.

Once connected, an agent invokes these tools natively (e.g. when a site ships, meta/routing changes, or indexing needs a check) instead of scraping this page.

### HTTP API

For apps and CLI scripts, the same audit is available over plain HTTP.

**Start a scan**

```
POST https://crawlinx.com/api/scan
Content-Type: application/json

{"url":"https://example.com","mode":"free"}
```

`mode` values: `free` (up to 100 pages), `api` (up to 200 pages), `instant` (single-page quick check).
Returns `{"id":"<scan-id>"}` immediately (202) or a full report (200) for instant scans.

**Get the JSON report**

```
GET https://crawlinx.com/api/scan/{id}/report
```

Returns the full structured report JSON once the scan completes.

**Get this Markdown report**

```
GET https://crawlinx.com/r/{id}.md
```

Returns this LLM-ready Markdown document.

**List recent public audits**

```
GET https://crawlinx.com/api/reports
```

### Quick start (curl)

```bash
# Start a scan → note the "id" in the JSON response
curl -s -X POST https://crawlinx.com/api/scan \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://example.com","mode":"free"}'

# Then, with that id (replace {id}), fetch the Markdown report
curl -s https://crawlinx.com/r/{id}.md
```

Full API reference & usage rules: https://crawlinx.com/api
