Гербы русских городов существуют с XVI века. В 1672 г. был составлен особый свод с изображениями 33 гербов царств, княжеств и земель, которые входили в полный царский титул.
Петр I учредил особую герольдмейстерскую контору, которой было поручено сочинение гербов, в том числе и городских.
Граф Франциск Санти в 1724 г. составил эмблему для знамени Санкт-Петербургского полка, созданного светлейшим графом Меншиковым, который и являлся его шефом. На красном (червленом) поле золотой скипетр, на котором перекрещены морской и речной якоря. Не удивительно, что эмблема этого полка стала гербом Санкт-Петербурга и всей Санкт-Петербургской (Ингермандландской) губернии. В 1728-1729 гг. граф Б.К. фон Миних составил гербовник, в котором под N 4 значился Санкт-Петербургский герб. В описании его есть несколько уточнений: скипетр завершен государственным гербом - двухглавым орлом, а над щитом помещена царская корона. В 1730 г. гербовник Миниха был утвержден Анной Иоанновной. 7 мая 1780 г. Екатерина II особым пожалованием закрепила уже существовавший герб Санкт-Петербурга. В 1856 г. Александр II высочайше одобрил петербургский герб, составленный бароном Б.В. Кене. Он отличался от прежнего тем, что гербовый щит венчался императорской короной и лазоревыми (голубыми) лентами ордена Андрея Первозванного, за ними изображалось два скрещенных скипетра, символизирующих равнозначность двух столиц - Петербурга и Москвы. В таком виде 5 января 1878 г. петербургский герб получил значение и губернского герба, причем речной четырехлопастный якорь заменили трехлопастным - кошкой.
В начале XX века в таблице, включавшей государственный герб, гербы губерний и областей европейской части России, Санкт-Петербургский герб имеет форму прямоугольного щита с заострением внизу.
Щит увенчан золотой императорской короной и обрамлен голубой андреевской лентой. На красном фоне щита скрещенные серебряные якоря - (левый) двухлапый морской и (правый) трехлапый речной. На них наложен золотой скипетр с двухглавым орлом. Символика герба предельно ясна: корона означает принадлежность к Всероссийской империи, скипетр - знак царствующего города, т.е. столицы; якоря и лента ордена Андрея Первозванного, косой крест (голубого цвета), который помещался на русском морском флаге, говорили о значении Петербурга, как столицы российского флота. В связи с возвращением Санкт-Петербургу его исторического первоначального названия обрел право и традиционный герб.
Положение о гербе Санкт-Петербурга было утверждено решением Президиума Ленсовета 6.09.1991 г