Why is @ in email address sometimes written as [at] on webpages?

Solution 1:

At first it was a way to hide the e-mail addres from "robots" that search for e-mail addresses in all possible websites. It was a way to keep the e-mail public (for humans) but hidden (from robots).

Quickly ill-intended programmers were able to come around this safety, but still a lot of spam was kept out.

The safest way though to make your e-mail public is to save it as an image, and place it on the webpage instead of text. Not 100% effective, sure, but pretty safe and easy to do.

Solution 2:

It is to keep the address hidden from simple email scrapers. Spammers sometimes just scan for an email address regex to gather targets for their spam. Doesn't work on more complex email scrapers, but useful to keep some spam out of your inbox.