1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8619],{17982:(e,t,s)=>{"use strict";s.d(t,{C:()=>h,z:()=>u});var r=s(82732),n=s(45849),a=s(17389),l=s(95155),i=s(12115),o=s(24058),c=s(99051),d=s(41781),u=i.forwardRef(function(e,t){var s=e.className,i=(0,a._)(e,["className"]);return(0,l.jsx)(o.bL,(0,n._)((0,r._)({className:(0,d.cn)("grid gap-2",s)},i),{ref:t}))});u.displayName=o.bL.displayName;var h=i.forwardRef(function(e,t){var s=e.className,i=(0,a._)(e,["className"]);return(0,l.jsx)(o.q7,(0,n._)((0,r._)({ref:t,className:(0,d.cn)("aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",s)},i),{children:(0,l.jsx)(o.C1,{className:"flex items-center justify-center",children:(0,l.jsx)(c.A,{className:"h-2.5 w-2.5 fill-current text-current"})})}))});h.displayName=o.q7.displayName},18162:(e,t,s)=>{"use strict";s.d(t,{A:()=>d});var r=s(22043),n=s(95155),a=s(12115),l=s(27159),i=s(39347),o=s(523),c=s(41781);let d=function(e){var t=e.className,s=e.onRatingSubmit,d=(0,r._)((0,a.useState)(0),2),u=d[0],h=d[1],x=(0,r._)((0,a.useState)(0),2),m=x[0],p=x[1],f=(0,r._)((0,a.useState)(3.9),2),g=f[0],b=f[1],k=(0,r._)((0,a.useState)(1276),2),y=k[0],j=k[1],w=(0,r._)((0,a.useState)(!1),2),v=w[0],N=w[1],_=a.useRef(null),S=function(){var e=localStorage.getItem("ratingsData");if(e){var t=JSON.parse(e),s=t.average,r=t.totalVotes;b(s),j(r)}},C=function(e){var t=localStorage.getItem("ratingsData"),r=3.9,n=1276;if(t){var a=JSON.parse(t);n=a.totalVotes+1,r=(a.average*a.totalVotes+e)/n}else n+=1,r=(1276*r+e)/n;localStorage.setItem("ratingsData",JSON.stringify({average:r,totalVotes:n})),h(e),S(),N(!0),null==s||s()};(0,a.useEffect)(function(){S()},[]);var R=function(e){var t=Math.round(2*(m||u||g))/2,s=e-.5===t,r=e<=t;return(0,n.jsx)("div",{className:"cursor-pointer transition-transform duration-150 hover:scale-110 active:scale-95",onMouseEnter:function(){return p(e)},onMouseLeave:function(){return p(0)},onClick:function(){return C(e)},children:s?(0,n.jsx)(l.A,{className:"w-4 h-4 text-yellow-400",fill:"currentColor"}):(0,n.jsx)(i.A,{className:(0,c.cn)("w-4 h-4 transition-colors duration-150",r?"text-yellow-400":"text-gray-500"),fill:r?"currentColor":"none"})},e)};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:(0,c.cn)("w-full flex sm:justify-center",t),children:(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1 px-3 py-2.5 bg-white rounded-lg shadow-md border border-gray-200 select-none w-full sm:w-auto sm:min-w-[380px] justify-center",children:[(0,n.jsx)("span",{className:"text-gray-900 font-semibold text-xs",children:"Rate this tool"}),(0,n.jsx)("div",{className:"flex items-center gap-0.5",children:[1,2,3,4,5].map(function(e){return R(e)})}),(0,n.jsx)("span",{className:"text-gray-900 font-bold text-xs",children:g.toFixed(1)}),(0,n.jsxs)("span",{className:"text-gray-500 text-xs",children:["/ 5 ⢠",y.toLocaleString()," votes"]})]})}),(0,n.jsx)("button",{ref:_,className:"hidden"}),(0,n.jsx)(o.A,{isOpen:v,onClose:function(){return N(!1)},triggerRef:_})]})}},26983:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var r=(0,s(71847).A)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]])},35299:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var r=(0,s(71847).A)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},53511:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var r=(0,s(71847).A)("Pause",[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]])},58518:(e,t,s)=>{Promise.resolve().then(s.bind(s,67623))},67623:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>ef});var r=s(61975),n=s(82732),a=s(45849),l=s(22043),i=s(45377),o=s(71450),c=s(95155),d=s(12115),u=s(52619),h=s.n(u),x=s(97003),m=s(33789),p=s(32559),f=s(83209),g=s(96633),b=s(17982),k=s(90235),y=s(17389);s(47650);var j=s(32467),w=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>
1{let s=(0,j.TL)(`Primitive.${t}`),r=d.forwardRef((e,r)=>{let{asChild:n,...a}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,c.jsx)(n?s:t,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),v="Progress",N=(0,l._)(function(e,t=[]){let s=[],r=()=>{let t=s.map(e=>d.createContext(e));return function(s){let r=s?.[e]||t;return d.useMemo(()=>({[`__scope${e}`]:{...s,[e]:r}}),[s,r])}};return r.scopeName=e,[function(t,r){let n=d.createContext(r);n.displayName=t+"Context";let a=s.length;s=[...s,r];let l=t=>{let{scope:s,children:r,...l}=t,i=s?.[e]?.[a]||n,o=d.useMemo(()=>l,Object.values(l));return(0,c.jsx)(i.Provider,{value:o,children:r})};return l.displayName=t+"Provider",[l,function(s,l){let i=l?.[e]?.[a]||n,o=d.useContext(i);if(o)return o;if(void 0!==r)return r;throw Error(`\`${s}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let s=()=>{let s=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=s.reduce((t,{useScope:s,scopeName:r})=>{let n=s(e)[`__scope${r}`];return{...t,...n}},{});return d.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return s.scopeName=t.scopeName,s}(r,...t)]}(v),2),_=N[0];N[1];var S=(0,l._)(_(v),2),C=S[0],R=S[1],L=d.forwardRef(function(e,t){var s,r,l,i,o=e.__scopeProgress,d=e.value,u=void 0===d?null:d,h=e.max,x=e.getValueLabel,m=(0,y._)(e,["__scopeProgress","value","max","getValueLabel"]);(h||0===h)&&!I(h)&&console.error((s="".concat(h),r="Progress","Invalid prop `max` of value `".concat(s,"` supplied to `").concat(r,"`. Only numbers greater than 0 are valid max values. Defaulting to `").concat(100,"`.")));var p=I(h)?h:100;null===u||P(u,p)||console.error((l="".concat(u),i="Progress","Invalid prop `value` of value `".concat(l,"` supplied to `").concat(i,"`. The `value` prop must be:\n - a positive number\n - less than the value passed to `max` (or ").concat(100," if no `max` prop is set)\n - `null` or `undefined` if the progress is indeterminate.\n\nDefaulting to `null`.")));var f=P(u,p)?u:null,g=E(f)?(void 0===x?function(e,t){return"".concat(Math.round(e/t*100),"%")}:x)(f,p):void 0;return(0,c.jsx)(C,{scope:o,value:f,max:p,children:(0,c.jsx)(w.div,(0,a._)((0,n._)({"aria-valuemax":p,"aria-valuemin":0,"aria-valuenow":E(f)?f:void 0,"aria-valuetext":g,role:"progressbar","data-state":U(f,p),"data-value":null!=f?f:void 0,"data-max":p},m),{ref:t}))})});L.displayName=v;var A="ProgressIndicator",T=d.forwardRef(function(e,t){var s,r=e.__scopeProgress,l=(0,y._)(e,["__scopeProgress"]),i=R(A,r);return(0,c.jsx)(w.div,(0,a._)((0,n._)({"data-state":U(i.value,i.max),"data-value":null!=(s=i.value)?s:void 0,"data-max":i.max},l),{ref:t}))});function U(e,t){return null==e?"indeterminate":e===t?"complete":"loading"}function E(e){return"number"==typeof e}function I(e){return E(e)&&!isNaN(e)&&e>0}function P(e,t){return E(e)&&!isNaN(e)&&e<=t&&e>=0}T.displayName=A;var O=s(41781),B=d.forwardRef(function(e,t){var s=e.className,r=e.value,l=(0,y._)(e,["className","value"]);return(0,c.jsx)(L,(0,a._)((0,n._)({ref:t,className:(0,O.cn)("relative h-4 w-full overflow-hidden rounded-full bg-secondary",s)},l),{children:(0,c.jsx)(T,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:"translateX(-".concat(100-(r||0),"%)")}})}))});B.displayName=L.displayName;var M=s(26983),q=s(78874),F=s(52056),H=s(71847),D=(0,H.A)("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),W=s(35299),z=s(85921),$=s(53511),Y=(0,H.A)("CircleStop",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",key:"1ssd4o"}]]),V=s(71155),G=s(71360),J=s(39867),K=s(86651),X=s(93499),Q=s(99975),Z=s(90368),ee=s(27937),et=s(90088),es=s(81390),er=s(39391),en=s(61091),ea=s(48607),el=s(62495),ei=s(72876),eo=s(92363),ec=s(75127);function ed(){return(0,c.jsx)("section",{className:"py-12 px-0 md:px-4",children:(0,c.jsxs)("div",{className:"prose prose-lg max-w-none text-gray-700",children:[(0,c.jsx)("h2",{className:"text-2xl md:text-3xl font-semibold text-[#0056b3] mb-4",children:"What Are Broken Links and Why Do They Matter?"}),(0,c.jsxs)("p",{children:["A ",(0,c.jsx)("strong",{children:"broken link"})," is any hyperlink on your website that leads to a page that no longer exists. Click it and
1you get a 404 error, a timeout, or some other failure instead of the content you expected. They're also called ",(0,c.jsx)("strong",{children:"dead links"})," or ",(0,c.jsx)("strong",{children:"link rot"}),", and every website accumulates them over time."]}),(0,c.jsx)("p",{children:"Here's why they matter: Google crawls your site by following links. When Googlebot hits a dead link, it wastes crawl budget on a page that doesn't exist. Do that enough times and Google starts crawling your site less frequently. Meanwhile, visitors who click broken links bounce immediately â that's a terrible user experience and a signal to search engines that your site isn't well maintained."}),(0,c.jsxs)("p",{children:["Our ",(0,c.jsx)("strong",{children:"broken link checker"})," crawls your pages, follows every link, and reports back which ones are dead. You can scan a single page or your entire website â up to 2,000 URLs in one go. Fix the broken ones, and you've just improved both your SEO and your visitor experience in one shot."]}),(0,c.jsx)("h2",{className:"text-2xl md:text-3xl font-semibold text-[#0056b3] mt-12 mb-4",children:"How Broken Links Hurt Your SEO"}),(0,c.jsx)("h3",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"Wasted Crawl Budget"}),(0,c.jsx)("p",{children:"Google allocates a certain amount of crawl budget to your site â basically how many pages it'll check in a given time period. Every time Googlebot follows a link to a 404 page, that's a wasted crawl. On small sites this doesn't matter much. But if you have thousands of pages and hundreds of broken links, you're burning through crawl budget on dead ends instead of letting Google discover your actual content."}),(0,c.jsx)("h3",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"Lost Link Equity"}),(0,c.jsxs)("p",{children:["When external sites link to a page on your domain that no longer exists, all that ",(0,c.jsx)("strong",{children:"link equity"})," (ranking power) goes nowhere. It's like getting a recommendation letter that's addressed to the wrong person â the value is there but it can't be used. The fix is simple: find those broken URLs and add"," ",(0,c.jsx)(h(),{href:"/",className:"text-[#0059b3] hover:underline font-medium",children:"301 redirects"})," ","pointing to the correct pages. Our tool finds the broken links; the"," ",(0,c.jsx)(h(),{href:"/bulk-redirect-check",className:"text-[#0059b3] hover:underline font-medium",children:"bulk redirect checker"})," ","helps you verify the fixes."]}),(0,c.jsx)("h3",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"Poor User Experience"}),(0,c.jsx)("p",{children:"Nothing kills trust faster than clicking a link and landing on a 404 page. Visitors don't know if your site is abandoned, if the content was removed, or if something is broken. Most of them just leave. High bounce rates from broken links send negative signals to search engines about your site quality."}),(0,c.jsx)("h2",{className:"text-2xl md:text-3xl font-semibold text-[#0056b3] mt-12 mb-4",children:"What Causes Broken Links?"}),(0,c.jsx)("p",{children:"Broken links don't appear out of nowhere. Here are the most common causes:"}),(0,c.jsxs)("p",{children:[(0,c.jsx)("strong",{children:"Deleted or moved pages without redirects."})," Someone removes a blog post or changes a URL slug without setting up a redirect. Every internal and external link pointing to that old URL is now broken. This is the number one cause of dead links on most websites."]}),(0,c.jsxs)("p",{children:[(0,c.jsx)("strong",{children:"Typos in URLs."})," A content editor manually types a link and misspells the path. The page exists at ",(0,c.jsx)("code",{className:"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm",children:"/services"})," but the link points to"," ",(0,c.jsx)("code",{className:"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm",children:"/servics"}),". These are easy to miss during content review but show up immediately in a scan."]}),(0,c.jsxs)("p",{children:[(0,c.jsx)("strong",{children:"External sites going down."})," You link to a resource on another website, and months later that site shuts down or restructures. You have no control over this, but you're still sending your visitors to a dead page. Regular scans catch these so you can update or remove the links."]}),(0,c.jsxs)("p",{children:[(0,c.jsx)("strong",{children:"CMS updates and migrations."})," Switching themes, updating plugins, or migrating to a new CMS can break internal links if URL structures change. Always run a full site scan after any major CMS change."]}),(0,c.jsxs)("p",{children:[(0,c.jsx)("strong",{children:"Changed file paths."})," Images, PDFs, and downloadable files that get moved to a new directory without updating the links that reference them. These are technically broken links too, even though they're not pages."]}),(0,c.jsx)("h2",{className:"text-2xl md:text-3xl font-semibold text-[#0056b3] mt-12 mb-4",children:"How to Use the Broken Link Checker"}),(0,c.jsx)("p",{children:"Two scanning modes, depending on what you need:"}),(0,c.jsxs)("p",{children:[(0,c.jsx)("strong",{children:"Single Page scan"})," â enter a URL and the tool checks every link on that specific page. It finds all the ",(0,c.jsx)("code",{className:"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm",children:"<a href>"})," tags, follows each one, and reports which ones return errors. Good for checking a specific landing page or blog post after editing. Handles up to 500 links per page."]}),(0,c.jsxs)("p",{children:[(0,c.jsx)("strong",{children:"Whole Website scan"})," â enter your domain and the tool crawls your entire site, following internal links from page to page. It checks up to 2,000 URLs and reports every broken link it finds along with the source page where the link appears. This is what you want for a full site audit."]}),(0,c.jsx)("p",{children:"Both modes show results in real-time as the scan progresses. You can pause and resume at any point, and export the full report to CSV when done. The report includes the broken URL, the HTTP status code, and the anch
1or text of the link â so you know exactly where to find it and fix it."}),(0,c.jsx)("h2",{className:"text-2xl md:text-3xl font-semibold text-[#0056b3] mt-12 mb-4",children:"How to Fix Broken Links"}),(0,c.jsx)("p",{children:"Once you have your list of dead links, here's the decision tree:"}),(0,c.jsxs)("p",{children:[(0,c.jsx)("strong",{children:"If the content moved to a new URL"})," â set up a 301 redirect from the old URL to the new one. This preserves any link equity and sends visitors to the right place. Use our"," ",(0,c.jsx)(h(),{href:"/",className:"text-[#0059b3] hover:underline font-medium",children:"redirect checker"})," ","to verify the redirect works correctly after you set it up."]}),(0,c.jsxs)("p",{children:[(0,c.jsx)("strong",{children:"If the content was intentionally removed"})," â either redirect to the most relevant existing page, or update the links pointing to it. If it's an internal link, just change the href to point somewhere useful. If external sites link to it and the page had value, redirect to the closest equivalent."]}),(0,c.jsxs)("p",{children:[(0,c.jsx)("strong",{children:"If it's a typo"})," â fix the link. Simple as that. Update the href in your CMS and the broken link disappears."]}),(0,c.jsxs)("p",{children:[(0,c.jsx)("strong",{children:"If it's an external link you can't control"})," â either find an alternative resource to link to, use the Wayback Machine to find an archived version, or remove the link entirely. Don't leave dead external links on your site."]}),(0,c.jsx)("h2",{className:"text-2xl md:text-3xl font-semibold text-[#0056b3] mt-12 mb-4",children:"How Often Should You Check for Broken Links?"}),(0,c.jsx)("p",{children:"It depends on how often your site changes:"}),(0,c.jsxs)("ul",{className:"list-disc pl-6 space-y-2 my-4",children:[(0,c.jsxs)("li",{children:[(0,c.jsx)("strong",{children:"High-traffic sites with frequent updates"})," (news sites, e-commerce, blogs with daily posts) â check weekly. Content changes fast and links break fast."]}),(0,c.jsxs)("li",{children:[(0,c.jsx)("strong",{children:"Business sites with regular updates"})," (SaaS, agencies, portfolios) â check monthly. Enough to catch problems before they accumulate."]}),(0,c.jsxs)("li",{children:[(0,c.jsx)("strong",{children:"Static sites that rarely change"})," â check quarterly. External links still break over time even if your content doesn't change."]}),(0,c.jsxs)("li",{children:[(0,c.jsx)("strong",{children:"After any major change"})," â always run a scan after a CMS update, theme change, migration, or bulk content edit. Don't wait for the next scheduled check."]})]}),(0,c.jsx)("h2",{className:"text-2xl md:text-3xl font-semibold text-[#0056b3] mt-12 mb-4",children:"Broken Links vs Redirect Errors"}),(0,c.jsxs)("p",{children:['Not all link problems are 404s. Sometimes a link technically "works" but goes through a messy redirect chain or lands on the wrong page. Our broken link checker catches the hard failures (404, 500, timeouts). For redirect-specific issues like chains, loops, and wrong status codes, use our'," ",(0,c.jsx)(h(),{href:"/bulk-redirect-check",className:"text-[#0059b3] hover:underline font-medium",children:"bulk redirect checker"})," ","to trace the full path of each URL."]}),(0,c.jsxs)("p",{children:["The two tools work together: the broken link checker finds dead links, and the redirect checker helps you verify that your fixes (301 redirects) are working correctly. For a complete site health picture, also check your"," ",(0,c.jsx)(h(),{href:"/robots-txt-checker",className:"text-[#0059b3] hover:underline font-medium",children:"robots.txt"})," ","to make sure you're not accidentally blocking crawlers from important pages."]}),(0,c.jsxs)("p",{className:"mt-8",children:["Every website has broken links. The question is whether you find them before your visitors and Google do. Run a scan with our ",(0,c.jsx)("strong",{children:"broken link checker"})," above â paste a URL, choose single page or whole site, and get a complete report of every dead link in minutes. Fix them, and you've just improved your crawl eff
1iciency, preserved your link equity, and given your visitors a better experience. That's SEO and UX in one move."]})]})})}var eu=s(23052),eh=s(18162),ex={single:500,whole:2e3},em=[{question:"Why should I even care about broken links on my website?",answer:"Broken links are a real drag for a couple of reasons. First, Google and other search engines don't like them! They can hurt your search ranking. Second, imagine clicking on a link and it goes nowhere. Super frustrating, right? Fixing broken links makes your site easier to use and keeps visitors happy."},{question:"How does this Broken Link Checker work, exactly?",answer:"It's simple! You just type in your website address, choose whether you want to check one page or the whole site, and hit Start Scan. The tool then crawls your site and lets you know which links are broken."},{question:"What kind of broken links does this tool find?",answer:"Mostly, it'll find those classic 404 Errors â pages that just aren't there anymore. But it also catches other kinds of problems like Bad Request errors 400 and Internal Server Errors 500. Basically, anything that stops a link from working properly."},{question:"Do I need to be some sort of technical whiz to use this tool?",answer:"Nope! That's the best part. You don't need any special skills. Just type in a web address and click a button. We've made it super simple to use for everyone."},{question:"Is there a cost to use this service?",answer:"Nope, it's totally free! You can use the Broken Link Checker as often as you want to keep your website in tip-top shape."},{question:"I've found a bunch of broken links. What do I do now?",answer:"Once you know which links are broken, you have a few options. You can either update the link with the correct address, remove the link altogether if the page is gone for good, or, in some cases, redirect the broken link to a relevant, working page on your site."}];function ep(e){var t=e.status;return 0===t||408===t?(0,c.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs font-semibold bg-gray-100 text-gray-600",children:[(0,c.jsx)(M.A,{className:"h-3 w-3"}),"Timeout"]}):t>=500?(0,c.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs font-semibold bg-purple-100 text-purple-700",children:[(0,c.jsx)(q.A,{className:"h-3 w-3"}),t]}):t>=400?(0,c.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs font-semibold bg-red-100 text-red-700",children:[(0,c.jsx)(F.A,{className:"h-3 w-3"}),t]}):t>=300?(0,c.jsx)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs font-semibold bg-blue-100 text-blue-700",children:t}):(0,c.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs font-semibold bg-emerald-100 text-emerald-700",children:[(0,c.jsx)(D,{className:"h-3 w-3"}),t]})}function ef(){var e=(0,l._)((0,d.useState)(""),2),t=e[0],s=e[1],u=(0,l._)((0,d.useState)("single"),2),y=u[0],j=u[1],w=(0,l._)((0,d.useState)(!1),2),v=w[0],N=w[1],_=(0,l._)((0,d.useState)(!1),2),S=_[0],C=_[1],R=(0,l._)((0,d.useState)(null),2),L=R[0],A=R[1],T=(0,l._)((0,d.useState)({broken:[],working:[]}),2),U=T[0],E=T[1],I=(0,l._)((0,d.useState)({total:0,completed:0,currentUrl:void 0}),2),P=I[0],O=I[1],M=(0,l._)((0,d.useState)("all"),2),q=M[0],H=M[1],ef=(0,l._)((0,d.useState)(""),2),eg=ef[0],eb=ef[1],ek=(0,l._)((0,d.useState)("all"),2),ey=ek[0],ej=ek[1],ew=(0,l._)((0,d.useState)(1),2),ev=ew[0],eN=ew[1],e_=(0,l._)((0,d.useState)(10),2),eS=e_[0],eC=e_[1],eR=(0,d.useRef)(null),eL=(0,d.useRef)(!1),eA=(0,d.useMemo)(function(){return(0,i._)(U.broken).concat((0,i._)(U.working))},[U]),eT=(0,d.useMemo)(function(){var e="broken"===q?U.broken:"working"===q?U.working:eA;return eg&&(e=e.filter(function(e){return e.url.toLowerCase().includes(eg.toLowerCase())||(e.sourceText||"").toLowerCase().includes(eg.toLowerCase())})),"all"!==ey&&("4xx"===ey?e=e.filter(function(e){return e.status>=400&&e.status<500}):"5xx"===ey?e=e.filter(function(e){return e.status>=500}):"timeout"===ey?e=e.filter(function(e){return 0===e.status}):"2xx"===ey?e=e.filter(function(e){return e.status>=200&&e.status<300}):"3xx"===ey&&(e=e.filter(function(e){return e.status>=300&&e.status<400}))),e},[U,eA,q,eg,ey]);(0,d.useEffect)(function(){return function(){var e;null==(e=eR.current)||e.abort()}},[]),(0,d.useEffect)(function(){eN(1)},[q,eg,ey]);var eU=function(){return(0,r._)(function(){var e,s,r,l,c,d,u,h,x,m,p,f;return(0,o.YH)(this,function(g){switch(g.label){case 0:if(A(null),!t)return A("Please enter a URL to check"),[2];if((e=t.trim()).startsWith("http")||(e="https://".concat(e)),!(s=(0,er.w)(e)).val
1id)return A(s.error||"Please enter a valid URL"),[2];N(!0),C(!1),eL.current=!1,E({broken:[],working:[]}),O({total:0,completed:0,currentUrl:e}),H("all"),eb(""),ej("all"),eN(1),eR.current=new AbortController,g.label=1;case 1:return g.trys.push([1,12,13,14]),r=function(e){var t,s,r,l,c,u,h;return(0,o.YH)(this,function(o){switch(o.label){case 0:if(null==(t=eR.current)?void 0:t.signal.aborted)return[2,"break"];o.label=1;case 1:if(!eL.current||(null==(s=eR.current)?void 0:s.signal.aborted))return[3,3];return[4,new Promise(function(e){return setTimeout(e,300)})];case 2:return o.sent(),[3,1];case 3:l=(r=d.slice(e,e+m)).map(function(e){return e.url}),O(function(e){return(0,a._)((0,n._)({},e),{currentUrl:l[0]})}),o.label=4;case 4:return o.trys.push([4,7,,8]),[4,(0,en.A)("POST","/api/check-redirects-bulk",{urls:l,timeout:8e3})];case 5:return[4,o.sent().json()];case 6:return c=o.sent(),u=[],h=[],c.forEach(function(e,t){var s,n=(null==(s=r[t])?void 0:s.text)||"",a=e.statusCode||0,l={url:e.url,status:a,broken:a>=400||0===a,sourceText:n,finalUrl:e.finalUrl||void 0,timestamp:Date.now()};p++,l.broken?u.push(l):h.push(l)}),E(function(e){return{broken:(0,i._)(e.broken).concat((0,i._)(u.filter(function(t){return!e.broken.some(function(e){return e.url===t.url})}))),working:(0,i._)(e.working).concat((0,i._)(h.filter(function(t){return!e.working.some(function(e){return e.url===t.url})})))}}),O(function(e){return(0,a._)((0,n._)({},e),{completed:p,currentUrl:l[l.length-1]})}),[3,8];case 7:return o.sent(),p+=r.length,E(function(e){return{broken:(0,i._)(e.broken).concat((0,i._)(r.map(function(e){return{url:e.url,status:0,broken:!0,sourceText:e.text||"",timestamp:Date.now()}}).filter(function(t){return!e.broken.some(function(e){return e.url===t.url})}))),working:e.working}}),[3,8];case 8:return[2]}})},[4,(0,en.A)("POST","/api/extract-links",{url:e,scanType:y,sameDomainOnly:!1})];case 2:return[4,g.sent().json()];case 3:if(0===(d=(c=g.sent()).allLinks||c.links||[]).length)return A(c.error||"No links found on this page."),N(!1),[2];if(!("whole"===y&&(null==(l=c.subPages)?void 0:l.length)>0))return[3,7];u=function(e){var t,s,r,n;return(0,o.YH)(this,function(a){switch(a.label){case 0:if(null==(t=eR.current)?void 0:t.signal.aborted)return[2,"break"];a.label=1;case 1:return a.trys.push([1,4,,5]),[4,(0,en.A)("POST","/api/extract-links",{url:c.subPages[e],scanType:"single",sameDomainOnly:!1})];case 2:return[4,a.sent().json()];case 3:return r=(s=a.sent()).allLinks||s.links||[],n=new Set(d.map(function(e){return e.url})),r.forEach(function(e){n.has(e.url)||d.push(e)}),[3,5];case 4:return a.sent(),[3,5];case 5:return[2]}})},h=Math.min(c.subPages.length,10),x=0,g.label=4;case 4:if(!(x<h))return[3,7];return[5,(0,o.Ju)(u(x))];case 5:if("break"===g.sent())return[3,7];g.label=6;case 6:return x++,[3,4];case 7:O({total:(d=d.slice(0,ex[y])).length,completed:0,currentUrl:e}),m=50,p=0,f=0,g.label=8;case 8:if(!(f<d.length))return[3,11];return[5,(0,o.Ju)(r(f))];case 9:if("break"===g.sent())return[3,11];g.label=10;case 10:return f+=m,[3,8];case 11:return[3,14];case 12:return A(g.sent().message||"Scan failed. Please try again."),[3,14];case 13:return N(!1),eL.current=!1,[7];case 14:return[2]}})})()},eE=Math.ceil(eT.length/eS),eI=eT.slice((ev-1)*eS,ev*eS),eP=!v&&eA.length>0,eO=P.total>0?Math.round(P.completed/Math.min(P.total,ex[y])*100):0;return(0,c.jsxs)("main",{className:"min-h-screen bg-[#f9fafc] text-[#333] font-sans",children:[(0,c.jsxs)("div",{className:"flex justify-center min-h-screen w-full max-w-[1440px] mx-auto px-2",children:[(0,c.jsx)("aside",{className:"hidden lg:block w-[120px] flex-shrink-0",children:(0,c.jsx)("div",{className:"sticky top-4",children:(0,c.jsx)(el.default,{})})}),(0,c.jsxs)("div",{className:"flex-1 w-full lg:max-w-[calc(100vw-350px)] mx-auto px-3 sm:px-4 lg:px-2 py-[10px] sm:py-[20px]",children:[(0,c.jsxs)("div",{className:"text-center mb-4",children:[(0,c.jsx)("h1",{className:"text-[1.8rem] sm:text-[2.5rem] text-[#0056b3] mb-1 px-2",children:"Broken Link Checker"}),(0,c.jsx)("p",{className:"text-base sm:text-lg text-gray-600 px-2",children:"Find 404 errors, dead links and broken URLs on your website"})]}),(0,c.jsxs)("div",{className:"mb-6 mx-0 sm:mx-2",children:[(0,c.jsx)("div",{className:"flex overflow-x-auto whitespace-nowrap gap-1",children:[{href:"/",label:"Single URL",visClass:""},{href:"/bulk-redirect-check",label:"Bulk Redirect",visClass:""},{href:"/broken-link-checker",label:"Broken Link",visClass:""},{href:"/url-extractor",label:"URL Extractor",visClass:"hidden sm:inline-flex "},{href:"/robots-txt-checker",label:"Robots.txt",visClass:"hidden md:inline-flex "}].map(function(e){var t=e.href,s=e.label,r=e.visClass,n="/broken-link-checker"===t;return(0,c.jsx)(h(),{href:t,className:"".concat(r,"px-3 sm:px-4 py-2 text-xs sm:text-sm rounded-lg border border-b-0 border-gray-200 transition-all duration-150 ").concat(n?"font-bold text-[#0056b3]":"font-medium text-gray-500 hover:text-gray-800"),style:n?{backgroundColor:"hsl(220, 91.3%, 95.49%)"}:void 0,children:s},t)})}),(0,c.jsxs)("div",{className:"border border-gray-200 shadow-sm rounded-lg bg-[#f5f8ff] p-3 sm:p-4",children:[(0,c.jsxs)("div",{className:"flex gap-2 items-center",children:[(0,c.jsx)(m.p,{value:t,onChange:function(e){return s(e.target.value)},placeholder:"Enter website URL (e.g., https://example.com)",className:"text-base h-11 flex-1",onKeyDown:function(e){"Enter"!==e.key||v||eU()}}),(0,c.jsxs)(x.$,{onClick:eU,disabled:v,className:"h-11 px-6 whitespace-nowrap btn-bg-color",children:[v?(0,c.jsx)(W.A,{className:"h-4 w-4 animate-spin mr-2"}):null,v?"Scanning...":"Start Scan"]})]}),(0,c.jsxs)("div",{className:"flex items-center justify-between mt-3",children:[(0,c.jsxs)(b.z,{defaultValue:"single",onValueChange:function(e){return j(e)},className:"flex gap-4",children:[(0,c.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,c.jsx)(b.C,{value:"single",id:"single"}),(0,c.jsx)(k.J,{htmlFor:"single",className:"text-sm cursor-pointer",children:"Single page"})]}),(0,c.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,c.jsx)(b.C,{value:"whole",id:"whole"}),(0,c.jsx)(k.J,{htmlFor:"whole",className:"text-sm cursor-pointer",children:"Whole website"})]})]}),(0,c.jsxs)("div",{className:"flex gap-2",children:[v&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(x.$,{variant:"outline",size:"sm",className:"h-9",onClick:function(){S?(eL.current=!1,C(!1)):(eL.current=!0,C(!0))},children:S?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(z.A,{className:"h-3.5 w-3.5 mr-1"}),"Resume"]}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)($.A,{className:"h-3.5 w-3.5 mr-1"}),"Pause"]})}),(0,c.jsxs)(x.$,{variant:"outline",size:"sm",className:"h-9 text-red-600 border-red-200 hover:bg-red-50",onClick:function(){var e;null==(e=eR.current)||e.abort(),N(!1),C(!1),eL.current=!1},children:[(0,c.jsx)(Y,{className:"h-3.5 w-3.5 mr-1"}),"Stop"]})]}),(0,c.jsxs)(x.$,{variant:"outline",size:"sm",className:"h-9",onClick:function(){return(0,r._)(function(){return(0,o.YH)(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,navigator.clipboard.readText()];case 1:return s.apply(void 0,[e.sent()]),[3,3];case 2:return e.sent(),[3,3];case 3:return[2]}})})()},children:[(0,c.jsx)(V.A,{className:"h-3.5 w-3.5 mr-1"}),(0,c.jsx)("span",{className:"hidden sm:inline",children:"Paste"})]}),(0,c.jsxs)(x.$,{variant:"outline",size:"sm",className:"h-9",onClick:function(){return s("")},children:[(0,c.jsx)(G.A,{className:"h-3.5 w-3.5 mr-1"}),(0,c.jsx)("span",{className:"hidden sm:inline",children:"Clear"})]})]})]})]})]}),(0,c.jsx)(eo.A,{}),(0,c.jsx)(eu.A,{currentPath:"/broken-link-checker"}),(0,c.jsx)("div",{className:"mt-4 mb-4",children:(0,c.jsx)(eh.A,{})}),L&&!v&&(0,c.jsxs)(p.Fc,{variant:"destructive",className:"mb-4",children:[(0,c.jsx)(F.A,{className:"h-4 w-4"}),(0,c.jsx)(p.TN,{children:L})]}),v&&(0,c.jsx)(f.Zp,{className:"p-4 sm:p-5 mb-6",children:(0,c.jsxs)("div",{className:"space-y-3",children:[(0,c.jsxs)("div",{className:"flex items-center justify-between",children:[(0,c.jsxs)("div",{className:"flex items-center gap-2",children:[(0,c.jsx)("div",{className:"w-2 h-2 rounded-full ".concat(S?"bg-yellow-400":"bg-emerald-500 animate-pulse")}),(0,c.jsx)("span",{className:"text-sm font-semibold text-gray-700",children:S?"Paused":"Scanning..."}),(0,c.jsx)("span",{className:"text-sm text-gray-500 font-mono truncate max-w-[200px] sm:max-w-[400px]",children:t})]}),(0,c.jsxs)("span",{className:"text-sm font-bold text-gray-700",children:[eO,"%"]})]}),(0,c.jsx)(B,{value:eO,className:"h-2"}),(0,c.jsxs)("div",{className:"grid grid-cols-4 gap-2 text-center",children:[(0,c.jsxs)("div",{className:"bg-gray-50 rounded-lg p-2",children:[(0,c.jsx)("p",{className:"text-lg font-bold text-gray-800",children:P.completed}),(0,c.jsx)("p",{className:"text-[10px] text-gray-500 uppercase font-medium",children:"Checked"})]}),(0,c.jsxs)("div",{className:"bg-gray-50 rounded-lg p-2",children:[(0,c.jsx)("p",{className:"text-lg font-bold text-gray-500",children:P.total}),(0,c.jsx)("p",{className:"text-[10px] text-gray-500 uppercase font-medium",children:"Total"})]}),(0,c.jsxs)("div",{className:"bg-red-50 rounded-lg p-2",children:[(0,c.jsx)("p",{className:"text-lg font-bold text-red-600",children:U.broken.length}),(0,c.jsx)("p",{className:"text-[10px] text-red-500 uppercase font-medium",children:"Broken"})]}),(0,c.jsxs)("div",{className:"bg-emerald-50 rounded-lg p-2",children:[(0,c.jsx)("p",{className:"text-lg font-bold text-emerald-600",children:U.working.length}),(0,c.jsx)("p",{className:"text-[10px] text-emerald-500 uppercase font-medium",children:"OK"})]})]}),(0,c.jsxs)("div",{className:"flex items-center gap-2 text-xs text-gray-500",children:[(0,c.jsx)(W.A,{className:"h-3 w-3 animate-spin flex-shrink-0"}),(0,c.jsxs)("span",{className:"truncate",children:["Checking: ",P.currentUrl||"â"]})]})]})}),(v||eP)&&eA.length>0&&(0,c.jsxs)("div",{className:"bg-white rounded-2xl shadow-sm border border-gray-200 mb-6",children:[(0,c.jsxs)("div",{className:"p-4 sm:p-5 border-b border-gray-100",children:[(0,c.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3",children:[(0,c.jsxs)("div",{children:[(0,c.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,c.jsx)("h2",{className:"text-lg font-semibold text-gray-800",children:"Scan Results"}),eP&&0===U.broken.length&&(0,c.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full bg-emerald-50 border border-emerald-200 text-xs font-semibold text-emerald-700",children:[(0,c.jsx)(D,{className:"h-3.5 w-3.5"}
1),"No broken links found \uD83C\uDF89"]})]}),(0,c.jsxs)("p",{className:"text-sm text-gray-500 mt-0.5",children:[P.completed," of ",P.total," URLs checked",U.broken.length>0?(0,c.jsxs)("span",{className:"text-red-600 font-medium ml-2",children:["\xb7 ",U.broken.length," broken"]}):P.completed>0&&(0,c.jsxs)("span",{className:"text-emerald-600 font-medium ml-2",children:["\xb7 All ",U.working.length," links working perfectly"]})]})]}),eP&&(0,c.jsxs)(x.$,{variant:"outline",size:"sm",onClick:function(){var e=eA.map(function(e){return'"'.concat(e.url,'",').concat(e.status,',"').concat((e.sourceText||"N/A").replace(/"/g,'""'),'"')}).join("\n"),t=new Blob(["URL,Status,Anchor Text\n".concat(e)],{type:"text/csv"}),s=document.createElement("a");s.href=URL.createObjectURL(t),s.download="redirectchecker.com_broken-links-report.csv",s.click()},className:"flex items-center gap-2 h-9",children:[(0,c.jsx)(J.A,{className:"h-3.5 w-3.5"}),"Export CSV"]})]}),(0,c.jsx)("div",{className:"flex gap-1 mt-4 border-b border-gray-100 -mb-[1px]",children:[{key:"all",label:"All",count:eA.length},{key:"broken",label:"Broken",count:U.broken.length},{key:"working",label:"Working",count:U.working.length}].map(function(e){return(0,c.jsxs)("button",{onClick:function(){return H(e.key)},className:"px-4 py-2 text-sm font-medium border-b-2 transition-colors ".concat(q===e.key?"border-blue-600 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700"),children:[e.label,(0,c.jsx)("span",{className:"ml-2 px-1.5 py-0.5 rounded text-xs font-bold ".concat(q===e.key?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-600"),children:e.count})]},e.key)})})]}),(0,c.jsxs)("div",{className:"px-4 sm:px-5 py-3 border-b border-gray-100 flex flex-col sm:flex-row gap-2",children:[(0,c.jsxs)("div",{className:"relative flex-1",children:[(0,c.jsx)(K.A,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-gray-400"}),(0,c.jsx)("input",{value:eg,onChange:function(e){return eb(e.target.value)}
1,placeholder:"Search URLs or anchor text...",className:"w-full h-8 pl-8 pr-3 text-sm border border-gray-200 rounded-md bg-gray-50 focus:outline-none focus:ring-1 focus:ring-blue-400"})]}),(0,c.jsxs)("select",{value:ey,onChange:function(e){return ej(e.target.value)},className:"h-8 px-2 text-sm border border-gray-200 rounded-md bg-gray-50 focus:outline-none",children:[(0,c.jsx)("option",{value:"all",children:"All statuses"}),(0,c.jsx)("option",{value:"2xx",children:"2xx OK"}),(0,c.jsx)("option",{value:"3xx",children:"3xx Redirect"}),(0,c.jsx)("option",{value:"4xx",children:"4xx Client Error"}),(0,c.jsx)("option",{value:"5xx",children:"5xx Server Error"}),(0,c.jsx)("option",{value:"timeout",children:"Timeout"})]})]}),(0,c.jsx)("div",{className:"overflow-x-auto",children:(0,c.jsxs)(g.XI,{children:[(0,c.jsx)(g.A0,{children:(0,c.jsxs)(g.Hj,{className:"bg-gray-50",children:[(0,c.jsx)(g.nd,{className:"w-[110px] text-xs font-semibold uppercase tracking-wide",children:"Status"}),(0,c.jsx)(g.nd,{className:"text-xs font-semibold uppercase tracking-wide",children:"URL"}),(0,c.jsx)(g.nd,{className:"w-[180px] text-xs font-semibold uppercase tracking-wide hidden sm:table-cell",children:"Anchor Text"})]})}),(0,c.jsx)(g.BF,{children:0===eI.length?(0,c.jsx)(g.Hj,{children:(0,c.jsx)(g.nA,{colSpan:3,className:"text-center py-8 text-gray-400",children:eg||"all"!==ey?"No results match your filter":"No results yet"})}):eI.map(function(e,t){return(0,c.jsxs)(g.Hj,{className:e.broken?"bg-red-50/50 hover:bg-red-50":"hover:bg-gray-50",children:[(0,c.jsx)(g.nA,{children:(0,c.jsx)(ep,{status:e.status})}),(0,c.jsx)(g.nA,{children:(0,c.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,c.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 font-mono text-xs text-gray-700 hover:text-blue-600 hover:underline",children:[(0,c.jsx)("span",{className:"truncate max-w-[250px] sm:max-w-[450px]",children:e.url}),(0,c.jsx)(X.A,{className:"h-3 w-3 flex-shrink-0 text-gray-400"})]}),e.finalUrl&&e.finalUrl!==e.url&&(0,c.jsxs)("a",{href:e.finalUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 font-mono text-[11px] text-emerald-600 hover:text-emerald-700 hover:underline",children:[(0,c.jsx)("span",{className:"text-gray-400",children:"â³"}),(0,c.jsx)("span",{className:"truncate max-w-[230px] sm:max-w-[420px]",children:e.finalUrl}),(0,c.jsx)(X.A,{className:"h-2.5 w-2.5 flex-shrink-0 text-emerald-400"})]})]})}),(0,c.jsx)(g.nA,{className:"text-xs text-gray-500 hidden sm:table-cell",children:e.sourceText||(0,c.jsx)("span",{className:"text-gray-300",children:"â"})})]},"".concat(e.url,"-").concat(t))})})]})}),(0,c.jsxs)("div",{className:"px-4 sm:px-5 py-3 border-t border-gray-100 flex flex-col sm:flex-row items-center justify-between gap-3",children:[(0,c.jsxs)("div",{className:"flex items-center gap-2 text-sm text-gray-500",children:[(0,c.jsx)("span",{children:"Rows:"}),(0,c.jsx)("select",{value:eS,onChange:function(e){eC(Number(e.target.value)),eN(1)},className:"h-7 w-16 text-xs border border-gray-200 rounded px-1",children:[10,20,50,100].map(function(e){return(0,c.jsx)("option",{value:e,children:e},e)})}),(0,c.jsxs)("span",{className:"text-gray-400",children:[eT.length," results"]})]}),(0,c.jsxs)("div",{className:"flex items-center gap-1",children:[(0,c.jsx)(x.$,{variant:"outline",size:"icon",className:"h-7 w-7",onClick:function(){return eN(1)},disabled:1===ev,children:(0,c.jsx)(Q.A,{className:"h-3.5 w-3.5"})}),(0,c.jsx)(x.$,{variant:"outline",size:"icon",className:"h-7 w-7",onClick:function(){return eN(function(e){return Math.max(1,e-1)})},disabled:1===ev,children:(0,c.jsx)(Z.A,{className:"h-3.5 w-3.5"})}),(0,c.jsxs)("span",{className:"text-sm text-gray-600 px-2",children:[ev," of ",Math.max(1,eE)]}),(0,c.jsx)(x.$,{variant:"outline",size:"icon",className:"h-7 w-7",onClick:function(){return eN(function(e){return Math.min(eE,e+1)})},disabled:ev>=eE,children:(0,c.jsx)(ee.A,{className:"h-3.5 w-3.5"})}),(0,c.jsx)(x.$,{variant:"outline",size:"icon",className:"h-7 w-7",onClick:function(){return eN(eE)},disabled:ev>=eE,children:(0,c.jsx)(et.A,{className:"h-3.5 w-3.5"})})]})]})]}),(0,c.jsxs)("div",{className:" p-10 px-2 mb-[50px]",children:[(0,c.jsx)("h2",{className:"text-[1.8rem] font-semibold text-[#0056b3] mb-6",children:"Check Dead Links on your website"}),(0,c.jsx)("p",{className:"font-bold mb-4 text-lg",children:"Are broken links, dead links or 404 errors hurting your website's SEO and user experience?"}),(0,c.jsx)("p",{className:"mb-[18px] text-lg",children:"Our Broken Link Checker is a free, easy-to-use tool that helps you find broken links and dead links across your entire site or on a single webpage. Identifying and fixing these broken links is crucial for maintaining a healthy website, improving search engine rankings, and keeping your visitors happy."}),(0,c.jsx)("h2",{className:"text-[1.8rem] mt-[30px] mb-[15px] text-[#0056b3]",children:"Why Use Our Broken Link Checker?"}),(0,c.jsxs)("ul",{className:"list-disc pl-5 mb-5 text-lg",children:[(0,c.jsxs)("li",{className:"mb-[10px]",children:[(0,c.jsx)("strong",{children:"Improved SEO:"})," Search engines and users both prefer well-maintained sites. By regularly using our broken link checker, you can find and fix dead links, 404 errors, and failed URLs before they hurt crawl quality or user experience. If an old URL should point somewhere else, verify the fix with our"," ",(0,c.jsx)(h(),{href:"/",className:"text-[#0073e6] hover:underline font-medium",children:"redirect checker"}),"."]}),(0,c.jsxs)("li",{className:"mb-[10px]",children:[(0,c.jsx)("strong",{children:"Enhanced User Experience:"}),' Imagine clicking a link only to find a "Page Not Found" error. Frustrating, right? By performing a broken link search, you ensure your visitors can navigate your site seamlessly, leading to a better experience and increased engagement.']}),(0,c.jsxs)("li",{className:"mb-[10px]",children:[(0,c.jsx)("strong",{children:"Easy to Use:"})," No complicated software or technical skills required. Simply enter your website's URL and choose whether you want to check a
1single page or the entire site."]}),(0,c.jsxs)("li",{className:"mb-[10px]",children:[(0,c.jsx)("strong",{children:"Comprehensive Scanning:"})," Our tool thoroughly scans your website, identifying all internal and external broken links. It provides detailed information about each broken link, including the URL, the source text link, and the HTTP status code e.g., 404."]}),(0,c.jsxs)("li",{className:"mb-[10px]",children:[(0,c.jsx)("strong",{children:"Free to Use:"})," You can use our free broken link checker as much as you need to maintain a healthy website."]})]}),(0,c.jsx)("h2",{className:"text-[1.8rem] mt-[30px] mb-[15px] text-[#0056b3]",children:"How Does Our Broken Link Checker Work?"}),(0,c.jsx)("p",{className:"mb-[18px] text-lg",children:"It is simple:"}),(0,c.jsxs)("ul",{className:"list-disc pl-5 mb-5 text-lg",children:[(0,c.jsxs)("li",{className:"mb-[10px]",children:[(0,c.jsx)("strong",{children:"Enter Your Website URL:"})," Type the URL of the website you want to check e.g., https://example.com into the provided field."]}),(0,c.jsxs)("li",{className:"mb-[10px]",children:[(0,c.jsx)("strong",{children:"Choose Scan Scope:"}),' Decide whether you want to check a single webpage or the whole website. If you select "Check whole website," the tool crawls pages on your domain to find dead links.']}),(0,c.jsxs)("li",{className:"mb-[10px]",children:[(0,c.jsx)("strong",{children:"Start Scan:"}),' Click the "Start Scan" button. Our tool begins analyzing your website for broken links and failed URLs.']})]}),(0,c.jsx)("h2",{className:"text-[1.8rem] mt-[30px] mb-[15px] text-[#0056b3]",children:"Features at a Glance:"}),(0,c.jsxs)("ul",{className:"list-disc pl-5 mb-5 text-lg",children:[(0,c.jsxs)("li",{className:"mb-[10px]",children:[(0,c.jsx)("strong",{children:"Single Page Check:"})," Quickly analyze individual pages to ensure they are free of broken links."]}),(0,c.jsxs)("li",{className:"mb-[10px]",children:[(0,c.jsx)("strong",{children:"Website-Wide Scan:"})," Scan your entire website to identify all broken links, giving you a comprehensive overview of your link health."]}),(0,c.jsxs)("li",{className:"mb-[10px]",children:[(0,c.jsx)("strong",{children:"Detailed Reports:"})," View detailed reports of all broken links found, including the URL, status code, and source text. For larger redirect cleanup jobs, send those URLs to the"," ",(0,c.jsx)(h(),{href:"/bulk-redirect-check",className:"text-[#0073e6] hover:underline font-medium",children:"bulk redirect checker"}),"."]}),(0,c.jsxs)("li",{className:"mb-[10px]",children:[(0,c.jsx)("strong",{children:"Paste URL:"})," Easily paste the URL of the website you want to check."]}),(0,c.jsxs)("li",{className:"mb-[10px]",children:[(0,c.jsx)("strong",{children:"Clear Results:"})," Clear the results after each scan."]})]}),(0,c.jsx)("h2",{className:"text-[1.8rem] mt-[30px] mb-[15px] text-[#0056b3]",children:"What Our Tool Checks For:"}),(0,c.jsxs)("ul",{className:"list-disc pl-5 mb-5 text-lg",children:[(0,c.jsxs)("li",{className:"mb-[10px]",children:[(0,c.jsx)("strong",{children:"404 Errors:"})," The most common type of broken link, indicating that the page no longer exists."]}),(0,c.jsxs)("li",{className:"mb-[10px]",children:[(0,c.jsx)("strong",{children:"Other HTTP Errors:"})," Our tool detects other common HTTP errors, such as 400 Bad Request and 500 Internal Server Error, providing a complete assessment of your website's link integrity."]})]}),(0,c.jsxs)("div",{className:"flex flex-col sm:flex-row items-center gap-4",children:[(0,c.jsx)("p",{className:"text-lg text-gray-600 mr-4 sm:mr-0 mb-4 sm:mb-0",children:"Ready to make sure your website is free of broken links?"}),(0,c.jsx)(h(),{href:"/broken-link-checker",children:(0,c.jsx)(x.$,{className:"px-8 py-3 text-lg font-semibold",children:"Start Checking Now!"})})]})]}),(0,c.jsx)("h2",{className:"text-[2rem] mt-[30px] mb-[15px] text-[#0056b3] text-center text-bold",children:"What Our Users Say"}),(0,c.jsxs)("div",{className:"space-y-6",children:[(0,c.jsxs)("blockquote",{className:"border-l-4 border-[#0073e6] pl-4 py-2 bg-white rounded-r-lg p-4",children:[(0,c.jsx)("p",{className:"italic text-gray-700 mb-2",children:"\"It's so easy to use and quickly found a bunch of broken links I didn't even know existed. My website is now much cleaner, and I'm already seeing a boost in my search ranking. Thanks!\""}),(0,c.jsx)("p",{className:"text-sm text-gray-500 font-semibold not-italic",children:"â Sarah M., Local Bakery Owner"})]}),(0,c.jsxs)("blockquote",{className:"border-l-4 border-[#0073e6] pl-4 py-2 bg-white rounded-r-lg p-4",children:[(0,c.jsx)("p",{className:"italic text-gray-700 mb-2",children:'"I\'ve tried other broken link checkers before, but they were either too expensive or too complicated. This one is perfect â free, user-friendly, and it gives me all the information I need to fix the problems ASAP. The report it generates is awesome."'}),(0,c.jsx)("p",{className:"text-sm text-gray-500 font-semibold not-italic",children:"â David L., Blogger"})]}),(0,c.jsxs)("blockquote",{className:"border-l-4 border-[#0073e6] pl-4 py-2 bg-white rounded-r-lg p-4",children:[(0,c.jsx)("p",{className:"italic text-gray-700 mb-2",children:'"This tool did an amazing job of finding all the broken links that I missed manually. It saved me hours of work."'}),(0,c.jsx)("p",{className:"text-sm text-gray-500 font-semibold not-italic",children:"â Maria K., Freelance Web Designer"})]}),(0,c.jsxs)("blockquote",{className:"border-l-4 border-[#0073e6] pl-4 py-2 bg-white rounded-r-lg p-4",children:[(0,c.jsx)("p",{className:"italic text-gray-700 mb-2",children:'"I really appreciate the ability to scan my entire website with just a few clicks. I was surprised by how many broken links were hiding on older pages. This tool is essential for anyone who cares about their website\'s SEO and user experience!"'}),(0,c.jsx)("p",{className:"text-sm text-gray-500 font-semibold not-italic",children:"â John P., Marketing Manager"})]})]}),(0,c.jsx)(ed,{}),(0,c.jsx)(ea.default,{faqs:em}),(0,c.jsx)(es.default,{})]}),(0,c.jsx)("aside",{className:"hidden lg:block w-[120px] flex-shrink-0",children:(0,c.jsx)("div",{className:"sticky top-4",children:(0,c.jsx)(ei.default,{})})})]}),(0,c.jsx)(ec.default,{})]})}},85921:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var r=(0,s(71847).A)("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]])},90235:(e,t,s)=>{"use strict";s.d(t,{J:()=>u});var r=s(82732),n=s(17389),a=s(95155),l=s(12115),i=s(32894),o=s(83101),c=s(41781),d=(0,o.F)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),u=l.forwardRef(function(e,t){var s=e.className,l=(0,n._)(e,["className"]);
1return(0,a.jsx)(i.b,(0,r._)({ref:t,className:(0,c.cn)(d(),s)},l))});u.displayName=i.b.displayName},93499:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var r=(0,s(71847).A)("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]])},96633:(e,t,s)=>{"use strict";s.d(t,{A0:()=>c,BF:()=>d,Hj:()=>u,XI:()=>o,nA:()=>x,nd:()=>h});var r=s(82732),n=s(17389),a=s(95155),l=s(12115),i=s(41781),o=l.forwardRef(function(e,t){var s=e.className,l=(0,n._)(e,["className"]);return(0,a.jsx)("div",{className:"relative w-full overflow-auto",children:(0,a.jsx)("table",(0,r._)({ref:t,className:(0,i.cn)("w-full caption-bottom text-sm",s)},l))})});o.displayName="Table";var c=l.forwardRef(function(e,t){var s=e.className,l=(0,n._)(e,["className"]);return(0,a.jsx)("thead",(0,r._)({ref:t,className:(0,i.cn)("[&_tr]:border-b",s)},l))});c.displayName="TableHeader";var d=l.forwardRef(function(e,t){var s=e.className,l=(0,n._)(e,["className"]);return(0,a.jsx)("tbody",(0,r._)({ref:t,className:(0,i.cn)("[&_tr:last-child]:border-0",s)},l))});d.displayName="TableBody",l.forwardRef(function(e,t){var s=e.className,l=(0,n._)(e,["className"]);return(0,a.jsx)("tfoot",(0,r._)({ref:t,className:(0,i.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",s)},l))}).displayName="TableFooter";var u=l.forwardRef(function(e,t){var s=e.className,l=(0,n._)(e,["className"]);return(0,a.jsx)("tr",(0,r._)({ref:t,className:(0,i.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",s)},l))});u.displayName="TableRow";var h=l.forwardRef(function(e,t){var s=e.className,l=(0,n._)(e,["className"]);return(0,a.jsx)("th",(0,r._)({ref:t,className:(0,i.cn)("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",s)},l))});h.displayName="TableHead";var x=l.forwardRef(function(e,t){var s=e.className,l=(0,n._)(e,["className"]);return(0,a.jsx)("td",(0,r._)({ref:t,className:(0,i.cn)("p-4 align-middle [&:has([role=checkbox])]:pr-0",s)},l))});x.displayName="TableCell",l.forwardRef(function(e,t){var s=e.className,l=(0,n._)(e,["className"]);return(0,a.jsx)("caption",(0,r._)({ref:t,className:(0,i.cn)("mt-4 text-sm text-muted-foreground",s)},l))}).displayName="TableCaption"}},e=>{e.O(0,[2619,1736,5535,2472,6100,823,4566,4435,8441,9342,1255,7358],()=>e(e.s=58518)),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.