A broken link at least points somewhere. A malformed link does not: the text sitting in an anchor's href attribute cannot be parsed as a URL at all, so there was never a real address for anything, including a crawler, to follow.
What this finding means
Crawl Cove's malformed-links check looks at every anchor href on a page and flags the ones that throw when parsed as a URL. This is deliberately narrower than "every link the crawler didn't follow": hrefs like mailto:, tel:, javascript:, data:, a bare #, or a link the crawler is simply not built to follow are all valid URLs the crawler correctly leaves alone, and none of them are reported here. This check only catches genuine authoring mistakes, text that is not a URL in the first place.
A real finding looks like this:
2 malformed link href(s): 123 Main Street, Anytown; +1-555-0100
One finding per page, listing the offending href values up to a cap of 10, with a count of any extra beyond that.
Why it matters
A malformed href is not just invisible to a crawler, it is a dead link for every visitor who clicks it, because the browser cannot resolve it either. It never shows up as a broken-link finding, since that check needs a real URL to fetch and fail; here there was nothing to fetch in the first place, so this is the only check that catches it.
How to fix it
- Open the page and find the offending link, using the evidence text to search the page source for the exact href value.
- Work out what the author actually meant. A street address probably wanted a map link; a phone number wanted
tel:+15550100; a plain email address wantedmailto:. - Replace the href with a real, working link, or remove the anchor tag if there was never meant to be a link at all, keeping the visible text as plain text instead.
- Re-crawl the page to confirm the finding clears.
False positives and edge cases
mailto:,tel:,javascript:,data:, and bare#links are never flagged here. They are all valid URLs the crawler intentionally does not follow, and treating them as malformed would send you chasing links that were never broken.- A link to a genuinely unusual but valid URL, such as one with an uncommon port or an IP address instead of a hostname, is not malformed and will not be flagged, since it parses correctly even if it looks unfamiliar.
- This check does not require a network request, unlike broken-link checking, so it catches this class of mistake even on a page the crawler could not otherwise reach in time.
Related reading
For links that resolve to a real URL but one that only redirects rather than the final destination, see Internal Link to a Redirect. For a href that does parse as a URL but whose target was never found in the crawl, see Broken Internal Links.
Google documentation: SEO link best practices for Google
Frequently asked questions
- How is this different from a broken link?
- A broken link points at a real, parseable URL that returns an error when fetched, such as a 404. A malformed link is not a URL at all, so nothing was ever fetched to fail. Both leave a visitor stuck, but they need different checks because one requires a network request to detect and the other does not.
- What kind of mistake actually causes this?
- The most common cause is pasting something that looks like a link target but is not one: a street address, a Google Plus Code, a phone number typed straight into an href, or a URL with an unescaped space or line break copied from a document.
- Will my browser show an error for this?
- Usually yes, though the exact behaviour depends on the browser. Some browsers try to interpret the text as a search query instead of a navigation, which quietly sends the visitor somewhere unrelated rather than showing an obvious error.
- Why does this only list up to 10 hrefs per page?
- It is a practical cap on the evidence text, not on the fix. If a page has more than 10, the finding says so and names the count, and fixing the first 10 usually reveals the pattern behind the rest.