When sending a packet from one computer to another over LAN, you send both an ethernet header and an IP header. The ethernet header has a source and designation MAC address, and the IP header has source and destination IP addresses. Isn't this redundant? Are the IP headers ignored when communicating over LAN?
Don't confuse the network layers.
Ethernet, a layer-2 protocol, doesn't know or care which layer-3 protocol it carries. Also, it is only a protocol for a single layer-2 LAN, and nothing of the ethernet frame survives if the layer-3 packets are destined for a different LAN.
IPv4, IPX, IPv6, AppleTalk, etc. are layer-3 protocols, and they don't know or care which layer-2 protocol caries them. Layer-3 addressing is meant to be used across networks. For example, the Google server needs to know where to send return packets. It has no idea if the source host is on ethernet (IEEE 802.3), Wi-Fi (IEEE 802.11), token ring (IEEE 802.5), FDDI (IEEE 802.8), or any other layer-2 protocol.
The returning host, even if on the same LAN, needs to know the source layer-3 address because the application only talks to layer-4, which talks to layer-3, which needs to know what the layer-3 address of the original host is in order to be able to reply.
In theory, you wouldn't need to have a network (Layer 3) protocol to communicate only inside a physical network layer.
But the most standard network stack uses IP (Layer 3) and the protocol above it (TCP/UDP and more) to abstract the network for general applications, so that each application doesn't have to know what kind of network or inter-network infrastructure is used to communicate.
Some very specific applications, with the hard restriction that they will only communicate with hosts on the same physical network uses only Ethernet (or another layer 2 protocol). ARP for example.